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

how to stop a javascript loop for a particular interval of time?

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

1
2
3
4
5
    for(var i=0; i<valArray.lenght; i++)
    {
        alert("The value ="+valArray[i]);
        //stop for 30seconds..      
    }

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


1
2
3
4
5
6
for (var i = 0; i < valArray.length; i++)
  (function(i) {
    setTimeout(function() {
      alert(valArray[i]);
    }, i * 30000);
  })(i);

编辑修复闭包循环问题。


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

1
2
3
4
5
6
7
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);