无法在承诺中捕获UnhandledPromiseRejectionWarning

时间:2017-10-04 18:25:31

标签: javascript node.js discord

所以我试图在我的承诺中捕获UnhandledPromiseRejectionWarning,但由于某种原因它不起作用。它忽略了我的代码,只是将错误输出到控制台。

错误:

  

UnhandledPromiseRejectionWarning:未处理的承诺拒绝   (拒绝ID:1):错误:禁止(无法向此发送消息   用户)

代码:

e.message.author.openDM().then((message) => {
    message.sendMessage(`test`);
}).catch((error) => {
    e.message.channel.sendMessage(error + "test");
});

这是一个使用discordie的不和谐机器人。在我看来,上面的代码应该通过私人消息向消息作者发送单词“test”,如果机器人不能,它会在他们发送消息的频道中发送错误和单词test。但是,第二部分(在捕获内部)没有被执行 tl; dr,上面代码中的catch不起作用,如果机器人没有dm用户的权限,我会在控制台中收到上述错误。

1 个答案:

答案 0 :(得分:4)

您忘记了return函数中的then语句。 我想message.sendMessage('test')会返回一个承诺

e.message.author.openDM().then((message) => {
    return message.sendMessage(`test`);
}).catch((error) => {
    e.message.channel.sendMessage(error + "test");
});