【问题标题】:UnhandledPromiseRejectionWarning (Discord Bot)UnhandledPromiseRejectionWarning (Discord 机器人)
【发布时间】:2021-02-02 16:46:47
【问题描述】:

抱歉,如果我发错地方了,我只是在这里注册(:

所以我正在开发这个不和谐的机器人,它可以向我服务器中的每个人发送 DM,但是每当它无法发送 dm(可能是因为有人禁用了 dm 或其他原因)我都会收到此错误 UnhandledPromiseRejectionWarning

我希望它继续向其他用户发送消息,即使出现错误。现在,当错误出现时,它会停止发送给其他用户。

我的代码:

bot.on('message', message => {
  if (message.content.startsWith('+dmall')) {
    try {
      message.guild.members.forEach(member =>
        member.send("test"))
    }
    catch(error) {
      console.log('Couldnt send dm to a user!');
    }
  }
})

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    UnhandledPromiseRejection 来自您的 member.send 方法,该方法返回一个承诺。为了解决这个问题,我在方法中添加了一个 .catch

    message.guild.members.forEach(member => {
       member.send("test").catch(console.log('Couldnt send dm to a user!'))
    });
    

    但是请注意,向公会中的每个人发送 DM 严格违反 Discord ToS,并且您可能会被举报大规模 DM,因此使用风险自负。

    【讨论】:

    • 是的,谢谢你说得通。奇怪的是它仍然不起作用,我仍然收到相同的错误消息,永远卡在它上面/:
    • @ErikJohansson UnhandledPromiseRejectionWarning 来自实际返回消息承诺的 member.send() 方法。我已经为你编辑了我的代码,这应该可以清除错误
    猜你喜欢
    • 2021-04-01
    • 2021-07-01
    • 2021-01-01
    • 2021-03-12
    • 2021-05-14
    • 2021-01-10
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多