node.js - Discord.js:按 ID 获取消息给出错误的输出

标签 node.js promise bots discord discord.js

当我从另一个用户那里得到帮助时,我尝试通过 id 获取 fetchMessage() 。我想出了点问题,因为当我输入报告命令的 ID 时,它返回为 [object Promise] 而不是 ID 对应的消息。这是一个代码位及其输出:

if (cmd === `${prefix}report`) {
    let messageID = args[0];
    if (isNaN(messageID)) {
        message.author.send("Not an ID")
        return;
    }
    let messagea = message.channel.fetchMessages(messageID);
    let reportEmbed = new Discord.RichEmbed()
        .setTitle("Reports")
        .setColor("#F7E533")
        .addField("Message", messagea)
        .addField("Reported User", `@${messagea.author}`)
        .addField("Reported By", `${message.author} with ID: ${message.author.id}`)
        .addField("Time", message.createdAt)
    let reportschannel = message.guild.channels.find(`name`, botconfig.reportsChannel);
    if (!reportschannel) return message.channel.send("Couldn't find reports channel.");

    message.delete().catch(O_o => {});
    reportschannel.send(reportEmbed);
    message.delete();
    return;
}

The Output

最佳答案

message.channel.fetchMessages(messageID) 返回一个 Promise 而不是消息,您还应该使用 fetchMessage而不是 fetchMessages
你需要等待“给你信息”的 promise ,然后做你需要的事情。

message.channel.fetchMessage(messageID).then(messagea => {
    let reportEmbed = new Discord.RichEmbed()
        .setTitle("Reports")
        .setColor("#F7E533")
        .addField("Message", messagea.content)
        .addField("Reported User", `@${messagea.author}`)
        .addField("Reported By", `${message.author} with ID: ${message.author.id}`)
        .addField("Time", message.createdAt)
    let reportschannel = message.guild.channels.find(`name`, botconfig.reportsChannel);
    if (!reportschannel) return message.channel.send("Couldn't find reports channel.");

    message.delete().catch(O_o => {});
    reportschannel.send(reportEmbed);
    message.delete();
    return;
})

而且我还将 messagea 更改为 messagea.content,以便它实际显示消息

关于node.js - Discord.js:按 ID 获取消息给出错误的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49468539/

相关文章:

javascript - 将 promise 解析为 addEventListener

javascript - 确保一组 deferred.then 回调完成

c# - 无法收到用户的任何 Discord 消息

javascript - 统计来自 Discord 服务器的消息 - Discord.js

javascript - Node/ Mongoose 错误: ValidationError

node.js - 使用 PG-Promise 和 PG-Query-Stream 高效地读取、操作和插入数据

javascript - 从事件对象获取数据

mysql - 错误 : ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

javascript - 这两个 Promise 的写法是等价的吗?

python - 创建 twitch irc 机器人(登录身份验证失败)