[英]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
这是一个有用的模式,用于伪递归调用函数f
, n
次,之间有一个延迟:
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.