/ / Javascript setTimeout дають ще один тайм-аут - javascript, jquery

Javascript setTimeout дає інший тайм-аут - javascript, jquery

У мене проблеми з функцією setTimeout вjavascript, моя мета полягає в тому, щоб дати час у часі для кожного вкладеного оператора, після досягнення заданого maxrecord він зробить паузу протягом 2 годин, а потім продовжить оператор вставки.

Зараз я роблю роботу лише для першої умови, на яку дається затримка для кожної вставки. Але я не знаю, як дати 2 години затримки, перш ніж продовжувати вставляти.

мій код такий,

var ids = $("#listId").val().split("n");

var index = 1;
for(var i = 0; i < ids.length; i++) {
(function(i){
setTimeout(function(){
if (index <= interval) {
console.log("INDEX : " + index + " INTERVAL : " + interval);
} else {
console.log("SHOULD BREAK FOR 2 HOURS (NOTHING TODO HERE, JUST DELAY) THEN CONTINUE FROM LAST IDS");
}
index++;
}, 1000 * i);
}(i));
}

як ви бачите, мені потрібно дати 2 години затримки після індексу <= інтервал, а потім продовжити ще раз з останнім i.

Оцініть вашу допомогу.

Відповіді:

1 для відповіді № 1

Ви встановлюєте всі свої тайм-аути відразу, на початку, із заздалегідь визначеними термінами.

Ви не можете (легко) продовжувати змінювати, як встановлюються ті часи, виходячи з довільної умови (про цю затримку на 2 години)

Натомість слід зробити щось на кшталт:

function nextRow() {
// handle a single row
i++;
if( i < ids.length) setTimeout(nextRow,delay);
// where delay is either 1000 or 7200000 as needed
}
nextRow(); // start the loop