首页 > 解决方案 > 向消息添加多个反应时出现问题

问题描述

我在向消息添加多个反应时遇到问题(尝试添加 8-9)。

基本上,如果您等待,脚本会正常添加反应,但如果您在脚本将它们全部添加之前对表情符号做出反应,即使在消息已被删除后,它也会继续尝试添加其余的表情符号,从而引发以下错误。

(node:17500) UnhandledPromiseRejectionWarning: DiscordAPIError: Unknown Message
    at RequestHandler.execute (C:\Users\#######\Documents\project-folder\node_modules\discord.js\src\rest\RequestHandler.js:170:25)
    at processTicksAndRejections (internal/process/task_queues.js:89:5)

那么,知道我做错了什么吗?

// Context

message.channel.send({ embed: randomEmbed }).then((msg) => {
  msg.react(emNumber[0]).then(() => {
    for (let i = 0; i < dcArr.length && !msg.deleted; i++) {
      if (dcArr[i]["server_id"] == user.server_id) continue;
      msg.react(emNumber[i + 1]);
    }
  });

  var filter = (reaction, user) => {
    return (
      emNumber.slice(0, dcArr.length - 1).includes(reaction.emoji.name) &&
      user.id === discId
    );
  };

  msg
    .awaitReactions(filter, { max: 1, time: 20000, errors: ["time"] })
    .then(async (collected) => {
      msg.delete();
      message.channel.send({ embed: anotherRandomEmbed }).then((msg) => {
        msg.react(emThumbs[1]);
        msg.react(emThumbs[0]);

        // Something

        var filter = (reaction, user) => {
          return emThumbs.includes(reaction.emoji.name) && user.id === discId;
        };

        msg
          .awaitReactions(filter, { max: 1, time: 20000, errors: ["time"] })
          .then(async (collected) => {
            // Something else
          });
      });
    });
});

标签: javascriptdiscord.js

解决方案


推荐阅读