Discord机器人的NodeJS错误:UnhandledPromiseRejectionWarning:DiscordAPIError:无法发送空消息

时间:2019-09-12 03:37:57

标签: javascript discord discord.js mathjs

所以我正在尝试制作一个可以通过命令为我做快速数学运算的机器人。我的前缀是da$h,命令是Payment。例如,当我尝试使用命令da$h payment 1 + 1时,每次都会出现相同的错误。我正在使用mathjs节点btw。

我尝试在发送函数之前放置等待,并在所有返回函数之前放置异步,但是我得到了相同的确切错误。

const math = require('mathjs');
const Discord = require('discord.js');

exports.run =  (client, message, args, tools) => {

if (!args[0]) return   message.channel.send('Please input a calculation,');

let resp;
try {
    resp = math.evaluate(args.join(' '));
} catch (e) {
    return   message.channel.send('Sorry, please input a valid calculation');
}
const embed = new Discord.RichEmbed()
.setColor(0xffffff)
.setTitle('Math Calculation')
.addField('Input', `\`\`\`${args.join(' ')}\`\`\``)
.addField('Output', `\`\`\`js${resp}\`\`\``)

 message.channel.send(embed);

}

这是我不断收到的错误:

  

节点:18876)UnhandledPromiseRejection警告:DiscordAPIError:无法发送空消息       在item.request.gen.end(C:\ Users \ Admin \ Desktop \ coding \ node_modules \ Discord.js \ src \ client \ rest \ RequestHandlers \ Sequential.js:71:65)       那时(C:\ Users \ Admin \ Desktop \ coding \ node_modules \ snekfetch \ src \ index.js:204:21)       在process._tickCallback(内部/进程/next_tick.js:68:7)   (节点:18876)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:2)   (节点:18876)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。

2 个答案:

答案 0 :(得分:0)

这是一个嵌入式的空字段错误。

尝试使用,

console.log(args.join(' '));
console.log(resp);

然后您可以找到什么是空字段。

答案 1 :(得分:-1)

对于没有消息的嵌入,您需要执行message.channel.send({embed: embed})