等待具有异步过滤器的等待message.awaitReaction

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了等待具有异步过滤器的等待message.awaitReaction相关的知识,希望对你有一定的参考价值。

为什么我的控制台在“已启动”之前记录“已完成”?为什么我不能等待message.awaitReactions(); ?

const filter = async /*It is here for no reason but without it does not work neither*/ (reaction, user) => {
  if (user.id == players[p].user.id && aEmojis.indexOf(reaction.emoji.name) != -1) {
     console.log("Started");
     attackedIndex = aEmojis[aEmojis.indexOf(reaction.emoji.name)+1];
     message.delete();
     return true;
  }
  return false;
};


await message.awaitReactions(filter, {max: 1});
console.log("Finished");
答案

await在异步函数中工作

  (async function() {
  const filter = async (reaction, user) => {
  if (user.id == players[p].user.id && aEmojis.indexOf(reaction.emoji.name) != -1) {
     console.log("Started");
     attackedIndex = aEmojis[aEmojis.indexOf(reaction.emoji.name)+1];
     message.delete();
     return true;
  }
  return false;
  };


  await message.awaitReactions(filter, {max: 1});
  console.log("Finished");
  })();

以上是关于等待具有异步过滤器的等待message.awaitReaction的主要内容,如果未能解决你的问题,请参考以下文章

react-native 获取异步/等待响应过滤

同时等待多个具有独立延续的 WCF 异步调用

如何使赛普拉斯等待具有多个结果的异步搜索完成而不会导致测试失败

具有同步设置的异步功能

任务(异步,等待):我需要输入这些都是连接层还是仅具有 ASYNC 调用的层,即 HttpClient.GetAsync?

C# 中的异步/等待和并行 [关闭]