使用我的漫游器,我会发送一条嵌入消息,并且希望获得很多属性,但是我把它称为错误。发送后执行“ 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
答案 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);
};