错误:无法读取未定义的属性“歌曲”-discord.js

我对编码比较陌生,目前正在尝试制作一个简单的音乐机器人。要求很高的功能之一是每 5 秒更新一次的“正在播放”嵌入。几天前,我在 Stack Overflow 上的其他人的帮助下尝试实现这个,但我收到这个错误,我不知道如何修复,因为我现在只做了几个月的 discord.js。我将向您展示有效的代码和无效的代码,在此先感谢您的帮助!


const queue = message.client.queue.get(message.guild.id);

if (!queue)

 return message.channel.send({

  embed: { color: 'ff0000', description: `Nothing's playing right now.` },

 });

const song = queue.songs[0];

const seek =

 (queue.connection.dispatcher.streamTime -

  queue.connection.dispatcher.pausedTime) /

 1000;

const left = song.duration - seek;


let nowPlaying = new MessageEmbed()

 .setTitle('Now playing:')

 .setDescription(`${song.title}`)

 .setColor('#ff0000')

 .setThumbnail('https://img.icons8.com/clouds/2x/play.png')

 .addField(

  '\u200b',

  new Date(seek * 1000).toISOString().substr(11, 8) +

   '[ ' +

   createBar(song.duration == 0 ? seek : song.duration, seek, 10)[0] +

   '] ' +

   (song.duration == 0

    ? ' ◉ LIVE'

    : new Date(song.duration * 1000).toISOString().substr(11, 8)),

  false

 );


if (song.duration > 0)

 nowPlaying.setFooter(

  'Time Remaining: ' + new Date(left * 1000).toISOString().substr(11, 8)

 );


message.channel.send(nowPlaying);


繁星淼淼
浏览 128回答 1
1回答

POPMUISE

错误消息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 hereconst 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!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript