gpt4 book ai didi

javascript - 使用 setTimeout 延迟循环迭代

转载 作者:行者123 更新时间:2023-12-02 07:10:32 25 4
gpt4 key购买 nike

我想在每次迭代时延迟我的 while 循环。我尝试了以下方法:

var o = 1;
while(o<4){
setTimeout("setupAnimation(o)",2000);
//setupAnimation(o); //<--this works but everything happens att the same time
o++;
}

我也试过这样写,也没用:

var o = 1;
function repeatMe(){
setupAnimation(o);
o++;
setTimout('repeatMe()',1000);
}

有什么建议吗?

最佳答案

eval 速度慢、难以调试并且存在潜在的安全问题(取决于数据的来源)。不要使用它。 (将字符串传递给 setTimeout 通过代理使用 eval。)

改为将函数传递给 setTimeout。您需要使用闭包为您传递的函数捕获 o 的当前值。

您可能还应该在这里使用 for 循环而不是 while 循环。语法更清晰。

function setupAnimationFactory(o) {
return function() {
setupAnimation(o);
}
}

for (var o = 0; o < 4; o++){
setTimeout(setupAnimationFactory(o),2000);
}

关于javascript - 使用 setTimeout 延迟循环迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com