Discord.js 向用户添加角色警报

时间:2021-06-21 16:32:51

标签: javascript node.js discord discord.js

到目前为止 roles.add 效果很好

我的代码是

isMember.roles.add(myRole.id).catch(console.error);

但是,我不想捕获错误并在控制台上显示。

相反,我希望向用户发送错误消息。

我试过了,但没有用。

 if(isMember.roles.add(myRole.id))
   msg.author.send("Success!");
 else
   msg.author.send("Error!")

任何帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分:1)

添加角色会返回一个承诺。可以使用 then/catch 回调或 async/await + try/catch 块来处理 Promise。


然后/抓住

.catch() 块将在错误时执行 - .then() 成功时 - 发送消息,只需在函数中执行

isMember.roles.add(myRole.id)
   .catch(err => msg.channel.send("Error!"))
   .then(() => msg.channel.send("Success!");

异步/等待 + 尝试/捕获

确保您在 async 函数中

try {
   await isMember.roles.add(myRole.id);
} catch (err) {
   msg.channel.send("Error!");
}

Discord.JS 的 Guide To Promises

答案 1 :(得分:0)

if 语句的条件中使用函数通常是不好的做法。相反,这似乎是 try/catch 的一个很好的用途。 try 块尝试执行其中的函数,如果发生异常,它将移至 catch 块。例如:

try {
isMember.roles.add(myRole.id)
msg.author.send('Success!')
} catch {
msg.author.send('Error!')
}