2015-06-01 2 views
0

Я использую этот сценарий:Delay узла на расслоение плотной определенное время

var i = 0; 
async.whilst(
    // test to perform next iteration 
    function() { return i <= Myobject.length-1; }, 
    function(innerCallback){ 
//Some calculations.... 
setTimeout(function() { i++; innerCallback(); }, 10000); 
    }; 
); 

Фрагмент выше задерживает выполнение между элементами контура в течение 10 секунд. Но как я могу отложить выполнение цикла на specific time в течение нескольких секунд? Любые предложения очень ценятся!

+1

Что вы подразумеваете под "конкретным временем"? Как системное время? – Chev

+0

@AlexFord Каждые 30 минут, например 00.30,01.00,01.30 и т. Д. – user1665355

+0

Ну, вы можете просто сделать тайм-аут 1800000 миллисекунд, что равно 30 минутам. Вы можете использовать 'setInterval' для тайм-аута, который продолжает повторяться. – Chev

ответ

0
var delayInterval = 10000; 

setTimeout(function(){ 
    delayInterval = 30000; 
}, 1000*60*30); 

var i = 0; 
async.whilst(
    // test to perform next iteration 
    function() { return i <= Myobject.length-1; }, 
    function(innerCallback){ 
//Some calculations.... 
setTimeout(function() { i++; innerCallback(); }, delayInterval); 
    }; 
); 
+0

Не могли бы вы кратко объяснить? Будет ли приведенный выше пример задерживаться каждые 30 минут в течение 10 секунд? С наилучшими пожеланиями – user1665355

+0

Он делает то, что вы просили, он устанавливает паузу (delayInterval) до 30 секунд после 30 минут, начиная с начального значения 10 секунд. Если процедура заканчивается до 30 минут, это не будет иметь никакого эффекта. –

Смежные вопросы