当前位置: 首页 > 知识库问答 >
问题:

Discord.js-下一个用户继续循环从Reaction.users.fetch(). each((user)=>{...});

东方谦
2023-03-14

下面是客户机下的代码片段。在('ready',async()上=

this.MyServer = await client.guilds.fetch('MyServer ID here').catch(error => { console.log(error) });
this.MyRole = await this.Server.roles.cache.find((role) => role.name == `MyRole name here`);
this.MyChannel = await client.channels.fetch('MyChannel ID here').catch(error => { console.log(error) });
this.MyMessage = await this.RoleChannel.messages.fetch('MyMessage ID here').catch(error => { console.log(error) });
this.MyEmojiReaction = await this.MyMessage.reactions.cache.get('MyEmoji ID here');
this.ReactingUsers = await this.MyEmojiReaction.users.fetch();

this.ReactingUsers.each(async (user) => {
 if (!this.MyServer.members.cache.get(user.id)) return;
 if (!user.bot) {
  try {
   const member = await this.MyMessage.guild.members.fetch(user.id);
   member.roles.add(this.MyRole);
  } catch (error) {
   console.log(error);
   return;
  }
 }
});

当机器人启动时,它应该检查反应,this。MyEmojiReaction在消息中,此。我的消息在频道中,此。MyChannel,并添加存储在此中的反应用户。对角色作出反应,此。我的角色。除了一个问题外,它基本上工作正常。

第一行if(!this.MyServer.members.cache.get(user.id))返回 中。有反应的成员。每个(异步(用户)=


共有1个答案

陆昕
2023-03-14

如果我理解正确,您应该使用continue

它将转到下一个迭代,并转到数组中的下一个用户。

在您的情况下,请不要这样做:

if (!this.MyServer.members.cache.get(user.id)) return;

你应该这样做:

if (!this.MyServer.members.cache.has(user.id))  continue;
 类似资料:
  • 问题内容: 我想知道是否有任何内置方法可以继续进行python外循环中的下一次迭代。例如,考虑以下代码: 我希望此继续语句退出jj循环并转到ii循环中的下一项。我可以通过其他方式(通过设置标志变量)来实现此逻辑,但是有一种简单的方法可以做到这一点,还是像要求太多? 问题答案: 在一般情况下,当您有多个循环级别且对您不起作用时(因为您要继续上一个循环,而不是当前循环的右上循环),可以执行以下操作之一

  • 如下所示,我有3张表,即:表“Shops Fruits Data”,表(“Months”)和表(“Output”)。 我正在尝试将数据从“Shops Fruits data”表中复制到(“Output”)结构中,该数据基于从表中的月份(“months”)。我已经写了一段代码。然而,使用这段代码,我只能遍历第一行。我不明白,我怎样才能继续到下一排,直到最后一排。其次,我也不能将商店和水果的名称复制到

  • For Each循环用于为数组或集合中的每个元素执行语句或一组语句。 For Each循环类似于For循环; 但是,为数组或组中的每个元素执行循环。 因此,步进计数器将不存在于这种类型的循环中。 它主要用于数组或在File系统对象的上下文中使用,以便递归操作。 语法 (Syntax) 以下是VBA中For Each循环的语法。 For Each element In Group [state

  • 我对java非常陌生,需要帮助。基本上,我有一个程序,要求用户输入一个数字。当输入该数字时,它会将该数字之前的所有奇数相加。我正在尝试(但失败)做的是,做另一个循环,当提示用户请求一个数字来求奇数之和时,我想让它只在输入奇数时继续,否则它将不断重复询问用户,直到他们输入奇数为止。我知道使用循环可以解决这个问题,但我不知道如何让它工作。 这是我的密码: 提前谢谢!

  • 问题内容: 我有这段代码。我想回到循环的起点,并再次要求用户输入。但是,它总是循环而不停止请求输入。我的代码有什么问题?谢谢 问题答案: 从http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt%28int%29: “如果翻译成功,则扫描程序将前进经过匹配的输入。” 啊,但是如果翻译是什么 不是 成功的?在这种

  • 我有一个复选框列表,想用复选框的所有名称做一些事情。但是我似乎无法访问HTML对象: 这将产生TypeError:elem.hide不是函数 但是console.log(elem)显示: 如何访问每个元素?