当我的代码工作时出现“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”错误的主要内容,如果未能解决你的问题,请参考以下文章
当代码在 Visual Studio C++ 中正常工作时出现 MSB6006 错误
导出 .jar 时出现 FileNotFoundException