我如何设置大量时间?使用Javascript

时间:2016-04-07 19:59:04

标签: javascript for-loop settimeout

我正在尝试setTimeout一定次数。我的意思是我可以简单地这样做,但我觉得有一种更好的方法来做同样的事情。使用for-loop根本没有感觉到高效(虽然我是一个新手并且不知道)。

for (var i = 0; i < 1000, i++;){
    setTimeout(myFunction, 5);
}
function myFunction(){
    //Do something cool
} 

谢谢,请不要使用任何JQuery

2 个答案:

答案 0 :(得分:-1)

这是伪递归调用函数fn次的有用模式,其间有延迟:

function setTimeoutRepeat(f, delay, n) {
    (function loop() {
        if (n-- > 0) {
            f();
            setTimeout(loop, delay);
        }
    })();
}

setIntervalRepeat(myFunction, 5, 1000);

答案 1 :(得分:-2)

好吧,我不知道为什么你不喜欢()循环,也许你更喜欢递归:

function myFunction(){
    //Do something cool
    console.log('Cool!\n');
} 

(function re(i) {  
    if (i>0) {
        setTimeout(myFunction, 5);
        re(i-1);
    } 
}) (1000);

请注意,此解决方案效率较低,因为它本身使用堆栈(或JS中的任何替代品)进行递归调用。

您也可以考虑使用map()函数,但同样,您必须在某处存储数组。在这种情况下,()循环的好旧是你最好的镜头。