как остановить цикл JavaScript на конкретный интервал времени?

я использую JavaScript для цикла, для цикличного выполнения через конкретный массив и предупреждение, это - значение. Я хочу это после каждого предупреждения, которое это должно остановить на 30 секунд и затем продолжить... до конца цикла. мой код идет сюда..

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

я использовал setTimeout () функция, но это не работает... итерацией конца цикла, но не приостанавливайтесь в течение 30 секунд, интервал... является там каким-либо другим путем, таким как функция сна в PHP??

5
задан Harish Kurup 29 May 2010 в 10:58
поделиться

2 ответа

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

Отредактировано, чтобы исправить проблему замыкания петли.

11
ответ дан 18 December 2019 в 09:48
поделиться

В JavaScript нет функции sleep. Вы можете рефакторить приведенный выше код следующим образом:

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);
6
ответ дан 18 December 2019 в 09:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: