延迟"for each"方法
Delaying "for each" method
我正在尝试为服务器管理员删除服务器频道。这是为了当服务器所有者想要重置不和谐时,他可以使用命令。然而它太快了所以我需要在删除每个频道之前添加延迟,因为 Discord 员工可能会认为它是突袭。这是我的代码;
if (message.member.id == "<Server Owner ID>") {
message.guild.channels.forEach(channel => {
setTimeout(function(){channel.delete()}, 3000);
});
}
else {
message.channel.send("You don't have permission to execute this command.").then(msg => {
msg.delete("5000")
})
}}
我该如何处理?
在 forEach
回调中使用另一个参数来指示正在迭代的当前项目的索引,并将超时设置为该索引的某个乘数。这样,比如第一个超时会在3秒后触发,第二个会在6秒后触发,等等
message.guild.channels.forEach((channel, i) => {
setTimeout(() => channel.delete(), (i + 1) * 3000);
});
我正在尝试为服务器管理员删除服务器频道。这是为了当服务器所有者想要重置不和谐时,他可以使用命令。然而它太快了所以我需要在删除每个频道之前添加延迟,因为 Discord 员工可能会认为它是突袭。这是我的代码;
if (message.member.id == "<Server Owner ID>") {
message.guild.channels.forEach(channel => {
setTimeout(function(){channel.delete()}, 3000);
});
}
else {
message.channel.send("You don't have permission to execute this command.").then(msg => {
msg.delete("5000")
})
}}
我该如何处理?
在 forEach
回调中使用另一个参数来指示正在迭代的当前项目的索引,并将超时设置为该索引的某个乘数。这样,比如第一个超时会在3秒后触发,第二个会在6秒后触发,等等
message.guild.channels.forEach((channel, i) => {
setTimeout(() => channel.delete(), (i + 1) * 3000);
});