我将如何使用setTimeout每X次运行某些内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我将如何使用setTimeout每X次运行某些内容?相关的知识,希望对你有一定的参考价值。
我有一个Massrole命令的代码,可以赋予服务器上的每个人(机器人除外)特定的角色:
message.guild.members.filter(m => !m.user.bot).forEach(member => {
member.addRole(roleNameFind);
console.log(`[LOG] Gave the role ${roleName} to ${member.user.tag}.`);
});
都定义了“ roleNameFind”和“ roleName”。但是我如何使用setTimeout在forEach中每5秒运行一次member.addRole(roleNameFind);
和console.log(`[LOG] Gave the role ${roleName} to ${member.user.tag}.`);
?
答案
您需要使用setInterval()
而不是setTimeout()
来执行重复功能。
[我也建议使用client.setTimeout()
和client.setInterval()
而不是setTimeout()
和setInterval()
,以便一旦漫游器停止/重新启动,就可以清除计时器。
client.setInterval(() => {
message.guild.members.filter(m => !m.user.bot).forEach(member => {
member.addRole(roleNameFind);
console.log(`[LOG] Gave the role ${roleName} to ${member.user.tag}.`);
});
}, 5000)
另一答案
使用setInterval
,它完全可以满足您的要求。
var intervalId = setInterval(function() {
console.log("This function will be executed each 5 seconds!");
}, 5000);
Mozilla MDN的更多信息。
要停止最后一项的间隔,请使用clearInterval(intervalId);
另一答案
您可以使用setInterval
代替setTimeout
。您可以阅读文档here。
以上是关于我将如何使用setTimeout每X次运行某些内容?的主要内容,如果未能解决你的问题,请参考以下文章