如何以 1 秒的间隔从成员中删除角色?

时间:2021-04-04 02:14:53

标签: javascript node.js discord.js

targets.forEach(member => member.roles.remove(role))

既然担心达到速率限制,那么可以做到每个成员每隔1秒删除角色吗?我已经定义了“角色”和“目标”。 我已经完成了项目,但不知道如何添加1秒的间隔。

2 个答案:

答案 0 :(得分:2)

在 JavaScript 中,您可以使用 setInterval 或 setTimeout 函数来安排事件。

var index = 0;
var myInterval = setInterval(function() {
   if (index < targets.length - 1)
      targets[index].roles.remove(role);
   else
     clearInterval(myInterval);

   index++;
}, 1000);

1000 是循环运行之间的毫秒数。我还注意到您执行了 roles.remove,即使您的文字说添加。

编辑:我意识到我忘记增加索引,所以我添加了它。

答案 1 :(得分:1)

是的 -- 使用 setTimeout。并通过使用每个角色的索引来抵消每个超时。

targets.forEach((member, i) => {
  setTimeout(() => {
     member.roles.remove(role)
  }, i*1000);
});