У меня есть код, подобный этому:SetTimeout внутри setInterval
var count = 0;
setInterval(function() {
if(count===0){
console.log(123);
count++;
} else if(count>0) {
for(i=1;i<=2;i++){
(function(ind) {
setTimeout(function() {
console.log(ind);
}, 1000 * ind);
})(i);
}
count=0;
}
},1000)
Результат не то, что я ожидал, что я хотел бы достичь в лог консоли, как:
123
1
2
123
1
2
...
и т. д. для каждого интервала с 1000 мс. Также я хотел бы спросить, есть ли лучший способ сделать это? Число циклов setTimeout (2 для вышеуказанного случая) может/быть различным каждый раз.
* «... и т. Д. Для каждого интервала с 1000 мс ...» * Ваш внутренний 'setTimeout' будет иногда длиннее 1000 мс. Что тогда? –
что-то вроде этого, сначала напечатайте 123 и дождитесь 1000 мс, затем 1 и дождитесь 1000 мс, наконец, 2 и подождите 1000 мс, после чего повторите весь процесс бесконечно –
@TJCrowder да, я повторяюсь 123 –