Discord.js:在message.channel.send之后无法读取“ MessageEmbed”属性

时间:2020-08-30 20:21:28

标签: javascript node.js discord discord.js

使用我的漫游器,我会发送一条嵌入消息,并且希望获得很多属性,但是我把它称为错误。发送后执行“ console.log”时,我具有所有属性,但是无法使用其他方法访问它。

我认为我被困在“ message.channel.XXXXX”通话中,无法到达“ MessageEmbed.length”等。如果我的活动是“ message”,并且一切都遵循“ message.XXXX“类?

client.on('message', (message) => {
 if (message.content === '!sendembed') {
  const exampleEmbed = {
   color: 16711600,
   title: '__TITLE EMBED MESSAGE__',
   // a lot of fields...
  };
  message.channel
   .send({ embed: exampleEmbed })
   .then(console.log(`lenght:${message.embeds.MessageEmbed.length}`));
 }
});

当然,我有一个错误:

TypeError: Cannot read property 'length' of undefined

1 个答案:

答案 0 :(得分:1)

MessageEmbed不是message.embeds的属性。而是使用message.embeds[0],因为message.embeds返回array个嵌入。

此外,length不是embed的属性,因此将返回错误。


意识到我误解了这个问题之后,这是我的新解决方案。 message.channel.send()返回已发送消息的Promise,您可以在回调中使用它。

message.channel.send({ embed: exampleEmbed }).then((msg) => {
   // gain full access to Message object
   console.log(msg.channel);
   console.log(msg.author);

   // get access to MessageEmbed object
   console.log(msg.embeds[0])
   console.log(msg.embeds[0].title.length);
};