当我的代码工作时出现“Rich Embed fields may not be empty”错误

Posted

技术标签:

【中文标题】当我的代码工作时出现“Rich Embed fields may not be empty”错误【英文标题】:Getting 'Rich Embed fields may not be empty' error when my code works 【发布时间】:2019-12-06 15:14:38 【问题描述】:

如果有人编辑了他们的消息,我有一段代码会记录下来。它完美地工作,它显示了旧消息、新消息、频道等等。但是,我仍然收到一个错误,说我的 RichEmbed 字段为空。他们不是空的,他们工作!该错误显然发生在第 198 行 - .addField('Original:',$oldMessage.content)

这是我为 Discord 制作的机器人。我在任何地方都找不到任何帮助。

这是我的代码:

bot.on('messageUpdate', async(oldMessage, newMessage) => 
    const emb8 = new Discord.RichEmbed()
    .setTitle(':pencil: Message Edited')
    .setDescription('A user has edited a message.')
    .addField('Guild:', `$newMessage.guild.name`)
    .addField('User:', `$newMessage.author.tag`)
    .addField('Original:', `$oldMessage.content`)
    .addField('Edited to:', `$newMessage.content`)
    .addField('Channel:', `<#$newMessage.channel.id>`)
    .addField('Time:', `$newMessage.createdAt`)
    .setColor(0xFF9800)
    .setFooter('Sublime | Logs', 'https://file.coffee/WdTuqTwGF.PNG')
    bot.channels.get(`603943993348325392`).send(emb8)
);

它看起来正是我想要的样子,但由于某种原因我得到了这个错误:

js (node:162592) UnhandledPromiseRejectionWarning: RangeError: RichEmbed 字段值不能为空。 在 RichEmbed.addField (E:\Sublime-Project\node_modules\discord.js\src\structures\RichEmbed.js:166:34) 在 CommandoClient.bot.on (E:\Sublime-Project\index.js:193:3) 在 CommandoClient.emit (events.js:202:15) 在 MessageUpdateAction.handle (E:\Sublime-Project\node_modules\discord.js\src\client\actions\MessageUpdate.js:13:16) 在 MessageUpdateHandler.handle (E:\Sublime-Project\node_modules\discord.js\src\client\websocket\packets\handlers\MessageUpdate.js:7:34) 在 WebSocketPacketManager.handle (E:\Sublime-Project\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65) 在 WebSocketConnection.onPacket (E:\Sublime-Project\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35) 在 WebSocketConnection.onMessage (E:\Sublime-Project\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17) 在 WebSocket.onMessage (E:\Sublime-Project\node_modules\ws\lib\event-target.js:120:16) 在 WebSocket.emit (events.js:197:13) (node:162592) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这 错误源于在异步函数内部抛出 没有 catch 块,或拒绝未处理的承诺 使用 .catch()。 (拒绝编号:85)

【问题讨论】:

【参考方案1】:

几个月前我遇到了同样的错误,请检查您的相关承诺。原因是你在你的 Promise 中调用了一个拒绝函数,但你没有处理它。

【讨论】:

以上是关于当我的代码工作时出现“Rich Embed fields may not be empty”错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 IIS 时出现多个错误

当代码在 Visual Studio C++ 中正常工作时出现 MSB6006 错误

导出 .jar 时出现 FileNotFoundException

当我尝试使用 pyautogui click 功能运行我的代码时出现错误

在 Windows Phone 8 中跟踪位置时出现异常

当我尝试与我的数据库建立连接时出现错误