我的机器人使用 /play 命令,该命令之前提供了这个列表来选择歌曲
突然给出错误“无法读取未定义的属性'长度'”,我不明白为什么它之前工作正常
在这里,我留下我认为发生错误的特定部分
const videos = await youtube.searchVideos(query, 5).catch(async function() {
await message.say(
'> There was a problem searching the video you requested >.<'
).then(message.react('❌'));
return;
});
if (videos.length < 5 || !videos) {
message.say(
`> I had some trouble finding what you were looking for, please try again or be more specific`
).then(message.react('❌'));
return;
}
const videosNameArr = [];
for (let i = 0; i < videos.length; i++) {
videosNameArr.push(`${i + 1}: ${videos[i].title}`);
}
videosNameArr.push('cancel');
const embed = new MessageEmbed()
.setColor('#ffffff')
.setTitle('Choose a song/video.')
.addField('Song 1', videosNameArr[0])
.addField('Song 2', videosNameArr[1])
.addField('Song 3', videosNameArr[2])
.addField('Song 4', videosNameArr[3])
.addField('Song 5', videosNameArr[4])
.addField('Exit', 'Cancel');
var songEmbed = await message.channel.send({ embed });
message.channel
.awaitMessages(
function(msg) {
return (msg.content > 0 && msg.content < 6) || msg.content === 'cancel';
},
{
max: 1,
time: 60000,
errors: ['time']
}
)
.then(function(response) {
const videoIndex = parseInt(response.first().content);
if (response.first().content === 'cancel') {
songEmbed.delete().then(message.channel.send("> Song canceled"));;
return;
}
如果有人知道如何解决它,请帮助我,或者如果不向我询问命令的完整代码,我会传递它,谢谢。