用setInterval循环

我已经写了一个for循环使用setInterval 。 目的是为了给用户“滴灌”for循环的输出。 所以基本上我想每10000ms发送一次console.log消息,并把它输出到用户的控制台上。

看到我的例子如下:

 function longForLoop(limit) { for (var i = 0; i < limit; i++) { setInterval(() => { console.log("This is a long for loop. We are at " + i) }, 10000) } } longForLoop(10) 

但是,我只能得到整个结果?

任何build议,我在做什么错在这里?

感谢您的回复!

在这种情况下,不要将setInterval与for循环一起使用,因为setInterval将无条件地运行。 使用其中之一。我用setInterval没有循环,我使用clearInterval一旦条件达到

 function longForLoop(limit) { var i = 0; var ref = setInterval(() => { console.log("This is a long for loop. We are at " + ++i); if (i == limit) clearInterval(ref); }, 1000); } longForLoop(10); 

你可以使用setTimeout而不是setInterval 。 看看我的例子:

 function longForLoop(limit) { for (var i = 0; i < limit; i++) { (function(j) { setTimeout(function() { console.log('j',j); }, 100 + (1000 * j)); })(i); } } longForLoop(10) 

variablesi绑定到匿名函数外的值。 使用下面的代码来传递函数的值

 function longForLoop(limit) { for (var i = 0; i < limit; i++) { function innerFunction(valOfi) { console.log("This is a long for loop. We are at " + valOfi); } setInterval(innerFunction(i) , 10000) } } longForLoop(10)