在 Promise 之后得到警告,除了 catch 块
Getting warning except catch block after a Promise
我正在编写一个 discord.js 机器人并且需要一个第一个参数是 Message-ID 的命令。
因为 fetch()
returns 一个 promise,不能保证消息一定会被找到(显然如果 ID 错误),所以只有找到消息,它才会进入 .then()
,如果没有,我只是 .catch(msg.delete())
但是,我仍然在控制台中收到警告 UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
但是,如果我将 catch 块更改为 .catch(console.error)
,警告就会消失,并且我会得到一个对象类型的输出。但是我不认为这个错误会显示在我的控制台中,我也不想要那些警告。我的机器人应该只是删除消息,因为输入无效 ID 是用户的错。
还有一个问题:如果 ID (args[0]) 本身有效(18 个字符且只有数字)但仍然不匹配任何消息,或者它只是任何东西,catch 块究竟何时触发导致 Promise 出错。
提前致谢!
这里有更多的代码:
msg.channel.messages.fetch(args[0])
.then(message => {
console.log("then");
})
.catch(console.log("catch"));
有趣的是,如果我的ID是有效的,那么它首先说“抓住”,然后说“然后”。如果它无效,它会说“catch”,然后出现警告消息
尝试.catch((err) => { console.log(err); msg.delete(); });
我正在编写一个 discord.js 机器人并且需要一个第一个参数是 Message-ID 的命令。
因为 fetch()
returns 一个 promise,不能保证消息一定会被找到(显然如果 ID 错误),所以只有找到消息,它才会进入 .then()
,如果没有,我只是 .catch(msg.delete())
但是,我仍然在控制台中收到警告 UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
但是,如果我将 catch 块更改为 .catch(console.error)
,警告就会消失,并且我会得到一个对象类型的输出。但是我不认为这个错误会显示在我的控制台中,我也不想要那些警告。我的机器人应该只是删除消息,因为输入无效 ID 是用户的错。
还有一个问题:如果 ID (args[0]) 本身有效(18 个字符且只有数字)但仍然不匹配任何消息,或者它只是任何东西,catch 块究竟何时触发导致 Promise 出错。
提前致谢!
这里有更多的代码:
msg.channel.messages.fetch(args[0])
.then(message => {
console.log("then");
})
.catch(console.log("catch"));
有趣的是,如果我的ID是有效的,那么它首先说“抓住”,然后说“然后”。如果它无效,它会说“catch”,然后出现警告消息
尝试.catch((err) => { console.log(err); msg.delete(); });