Обычно проще использовать setInterval
, чем цикл с setTimeout
.Все просто проще:
var count = 10
var intv = setInterval(function(){
if (count === 0 ) {
clearInterval(intv)
console.log("done")
return
}
// do something
console.log(count--)
}, 1000)
Но вы можете рекурсивно позвонить setTimeout
:
(function myLoop (i) {
setTimeout(function () {
console.log("loop: ", i)
if (--i) myLoop(i);
}, 1000)
})(10);
Поместить все это в цикл for И вызвать его рекурсивно, хотя это странно, потому что цикл будет работать и делать кучу отдельных таймаутов, которые все будут работать независимо, чтоЯ не думаю, что вы хотите.