JavaScript之间等待循环

我想等待每个循环3秒,我已经尝试了很多algorithm,但没有一个工作,任何人都可以帮忙吗?

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 < 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)); }