Javascript 未经处理的承诺。如何修复它?
我有一个bot,它获取用户消息内容,删除用户消息,然后将私人消息发送到message.author,然后在embed中发送用户消息的内容。 在发送几条消息后,bot将发送2条消息,而不是1条,并显示警告。知道怎么修吗 警告:Javascript 未经处理的承诺。如何修复它?,javascript,promise,discord,discord.js,Javascript,Promise,Discord,Discord.js,我有一个bot,它获取用户消息内容,删除用户消息,然后将私人消息发送到message.author,然后在embed中发送用户消息的内容。 在发送几条消息后,bot将发送2条消息,而不是1条,并显示警告。知道怎么修吗 警告: const discord = require('discord.js'); const client = new discord.Client; client.on('message', message => { if (message.author === cl
const discord = require('discord.js');
const client = new discord.Client;
client.on('message', message => {
if (message.author === client.user && message.channel.id !== (508728211837026325)) {
return;
}
if (message.channel.id == (508728211837026325)) {
message.delete();
message.author.send("Success!");
message.channel.send({
"embed": {
"color": 61183,
"description": message.content + "\n\nCreated by: " + "<@" + message.author.id + ">",
"author": {
"icon_url": "imgururl;",
"url": "imgururl",
"name": "test",
},
timestamp: new Date()
}
})
}
})
client.login('token');
superadmin@vps-XXXXXX:~/path$node test.js(节点:1059)
未处理的PromisejectionWarning:DiscordAPIError:未知消息
在RequestHandler.execute(path/node_modules/discord.js/src/rest/RequestHandler.js:170:25)
在processTicksAndRejections(internal/process/task_queues.js:97:5)(节点:1059)
未处理的PromisejectionWarning:未处理的承诺拒绝。这
错误源于异步函数的内部抛出
没有拦截,或拒绝未处理的承诺
with.catch()。终止未处理承诺的节点进程
拒绝,请使用CLI标志--未处理的拒绝=严格(请参阅
).
(拒绝id:1)(节点:1059)[DEP0018]拒绝警告:未处理
拒绝承诺是不推荐的。在未来,承诺拒绝
未处理的将使用
非零退出代码
脚本:
const discord = require('discord.js');
const client = new discord.Client;
client.on('message', message => {
if (message.author === client.user && message.channel.id !== (508728211837026325)) {
return;
}
if (message.channel.id == (508728211837026325)) {
message.delete();
message.author.send("Success!");
message.channel.send({
"embed": {
"color": 61183,
"description": message.content + "\n\nCreated by: " + "<@" + message.author.id + ">",
"author": {
"icon_url": "imgururl;",
"url": "imgururl",
"name": "test",
},
timestamp: new Date()
}
})
}
})
client.login('token');
const discord=require('discord.js');
const client=新的discord.client;
client.on('message',message=>{
if(message.author===client.user&&message.channel.id!==(508728211837026325)){
返回;
}
如果(message.channel.id==(508728211837026325)){
message.delete();
message.author.send(“成功!”);
message.channel.send({
“嵌入”:{
“颜色”:61183,
“描述”:message.content+”\n\n由以下人员创建:“+”,
“作者”:{
“图标url”:“imgururl;”,
“url”:“imgururl”,
“名称”:“测试”,
},
时间戳:新日期()
}
})
}
})
client.login('token');
您描述的行为可能是由于您的机器人同时启动了两次。事实上,如果您的机器人启动两次:
- 您将收到未知消息警告,因为该消息已被bot的另一个实例删除
- 机器人会发送两次消息
阅读,它应该可以解决您的问题。您描述的行为可能是由于您的bot同时启动了两次。事实上,如果您的机器人启动两次:
- 您将收到未知消息警告,因为该消息已被bot的另一个实例删除
- 机器人会发送两次消息
请阅读,它应该可以解决您的问题。机器人正在被自己激活
if(message.author==client.user&&message.channel.id!==(508728211837026325))
#应该是
if(message.author==client.user | | message.channel.id!==(508728211837026325))
另一方面,频道id是一个twitter雪花,对于javascript,它可以大到uint64,这意味着您不能处理太大的id,因为限制是9007199254740991,所以您应该使用字符串版本
if(message.channel.id==“50872821837026325”)
机器人正在自己激活
if(message.author==client.user&&message.channel.id!==(508728211837026325))
#应该是
if(message.author==client.user | | message.channel.id!==(508728211837026325))
另一方面,频道id是一个twitter雪花,对于javascript,它可以大到uint64,这意味着您不能处理太大的id,因为限制是9007199254740991,所以您应该使用字符串版本
if(message.channel.id==“50872821837026325”)
我现在知道了。我忘了关闭屏幕(XD)Hi@rokky30,如果这是正确的答案,请按“标记为正确”按钮,让其他用户知道该怎么做?我现在知道了。我忘了关闭屏幕(XD)Hi@rokky30,如果这是正确的答案,您介意按“标记为正确”按钮,让其他用户知道该怎么做吗?