gpt4 book ai didi

javascript - While 循环,增加变量在 settimeout 函数内部没有影响

转载 作者:行者123 更新时间:2023-11-30 12:37:38 24 4
gpt4 key购买 nike

我在这个问题上花了很多时间,最后我可以在 jsfiddle 中用一个易于阅读的代码来展示它:http://jsfiddle.net/Lb0g25ae/

function test(i) {
return function() {
console.log(i);
//I need to increase valid here because this is where the script will choose wheter to increase or not (continue looping) valid depending on some conditions
}
}

var valid = 0;
while (valid < 5) {
setTimeout(test(valid), 1000*valid);
valid++;
}

我需要它

function test(i) {
return function() {
console.log(i);
valid++;
}
}

var valid = 0;
while (valid < 5) {
setTimeout(test(valid), 1000*valid);
}

但是这样循环不会停止,因为valid没有增加,这会产生无限循环和崩溃。有人可以指出我正确的方向吗?

最佳答案

Valid 不会增加,因为 while 循环会不停地进行并立即使 cpu 过载。

超时后需要调用test。检查:

var valid = 0;
function test() {
console.log(valid);
valid++;
if(valid < 5){
setTimeout(test, 1000*valid);
}
}
test();

关于javascript - While 循环,增加变量在 settimeout 函数内部没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25571805/

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