如何在特定的时间间隔内停止javascript循环?

Har*_*rup 5 javascript loops

我正在使用javascript for循环,循环一个特定的数组并提醒它的价值.我希望在每次警报后它应该停止30秒然后继续......直到循环结束.我的代码在这里..

    for(var i=0; i<valArray.lenght; i++)
    {
        alert("The value ="+valArray[i]);
        //stop for 30seconds..      
    }
Run Code Online (Sandbox Code Playgroud)

我已经使用了setTimeout()函数,但是它没有工作...作为循环结束迭代,但不要暂停30秒间隔......有没有其他方法,如PHP中的睡眠功能?

Del*_*ani 11

for (var i = 0; i < valArray.length; i++)
  (function(i) {
    setTimeout(function() {
      alert(valArray[i]);
    }, i * 30000);
  })(i);
Run Code Online (Sandbox Code Playgroud)

编辑修复闭包循环问题.


var*_*tec 6

JavaScript中没有睡眠功能.您可以将以上代码重构为:

function alert_and_sleep(i) {
   alert("The value ="+valArray[i]);
   if(i<valArray.length) {
     setTimeout('alert_and_sleep('+(i+1)+')',30000);
   }
}
alert_and_sleep(0);
Run Code Online (Sandbox Code Playgroud)