javascript在每个for循环之间等待

javascript在每个for循环之间等待,javascript,node.js,Javascript,Node.js,我想在每个for循环之间等待3秒钟,我已经尝试了很多算法,但都不起作用,有人能帮忙吗 for (i = 0; i < members.length; i ++) { console.log(members[i].username+" "+i); if (!members[i].can(Discordie.Permissions.General.KICK_MEMBERS, guildthingy)) { var dm = members[i].openDM(); co

我想在每个for循环之间等待3秒钟,我已经尝试了很多算法,但都不起作用,有人能帮忙吗

for (i = 0; i < members.length; i ++) {
  console.log(members[i].username+" "+i);
  if (!members[i].can(Discordie.Permissions.General.KICK_MEMBERS, guildthingy)) {
    var dm = members[i].openDM();
    console.log(members[i].username+" "+i+" "+dm);
    dm.then(function (value) {
      value.sendMessage(message);
      console.log("MESSAGE SENT");
    }, 
    function (value) {
      console.log(value);
    });
  }
}
for(i=0;i
你可以这样做

for (i = 0; i < members.length; i ++){
    (function(i){
        setTimeout(function(){
         console.log(members[i].username+" "+i);
        if (!members[i].can(Discordie.Permissions.General.KICK_MEMBERS, guildthingy)){
            var dm = members[i].openDM();
            console.log(members[i].username+" "+i+" "+dm);
            dm.then(function (value){

                    value.sendMessage(message);
                console.log("MESSAGE SENT");
            }, function (value){
                console.log(value);
            });

        }

        }, 3000 * i);//time in milliseconds
    }(i));
}
for(i=0;i
setTimeout
功能将应用延迟

立即开票匿名函数(IIAF)用于获取循环中
i
的当前值。
由于javascript延迟绑定变量
i
,因此
setTimeout
中提供的所有函数调用都将获得相同的参数
i
,如果不是针对该IIAF。最新的一个。

可能重复此延迟的目的是什么?这是针对服务器,将它们一起发送有时会导致损坏…,而且我没有注意到以前的问题!感觉像是一个孩子。你打算用它来避免什么样的腐败?