繁体   English   中英

如何大量设置setTimeout? Java脚本

[英]How do I setTimeout a large amount of times? Javascript

我正在尝试设置setTimeout的次数。 我的意思是我可以这样简单地做,但是我觉得有一种更好的方法可以处理同一件事。 使用for循环根本感觉不到(尽管我是新手,也不知道)。

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

谢谢,请不要使用任何JQuery

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

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

setIntervalRepeat(myFunction, 5, 1000);

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

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

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

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

您也可以考虑使用map()函数,但是同样,您必须将数组存储在某个地方。 在这种情况下,良好的for()循环将是您的最佳选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM