Javascript 未经处理的承诺。如何修复它?

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

我有一个bot,它获取用户消息内容,删除用户消息,然后将私人消息发送到message.author,然后在embed中发送用户消息的内容。 在发送几条消息后,bot将发送2条消息,而不是1条,并显示警告。知道怎么修吗

警告:

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,如果这是正确的答案,您介意按“标记为正确”按钮,让其他用户知道该怎么做吗?