用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)