1 回答
TA贡献1765条经验 获得超5个赞
错误消息Cannot read property 'songs' of undefined表明之前的变量.songs未定义。在这种情况下,queue是未定义的。
在有效的代码中,您可以正确处理它:queue在访问其.songs.
if (!queue) // handle if queue is undefined
return message.channel.send({
embed: { color: 'ff0000', description: `Nothing's playing right now.` },
});
// queue is guaranteed to be not undefined here
const song = queue.songs[0];
但是,在导致错误的代码中,您没有在setInterval处理程序中处理它。
/** in setInterval() **/
const queue = message.client.queue.get(message.guild.id);
// queue may be undefined!
const song = queue.songs[0]; // error occurs if queue is undefined!
要修复错误,您需要做的就是像处理有效代码一样处理未定义的情况。例如:
const queue = message.client.queue.get(message.guild.id);
if (!queue) return clearInterval(interval); // when queue is gone, stop editing the embed message
// queue is guaranteed to be not undefined here!
const song = queue.songs[0]; // OK!
添加回答
举报