gpt4 book ai didi

javascript - setTimeout(callback) 后跟 while 循环从不触发

转载 作者:行者123 更新时间:2023-11-30 07:02:39 25 4
gpt4 key购买 nike

我有下面的代码(注意,我稍后会在循环中添加更多代码,但我需要它先工作):

var calls_on = true;
function hunt(max, ext, duration){
if(duration != '0' || duration != false || duration != 0){
duration = duration * 1000; // milliseconds to delay before stopping calls
var t=setTimeout(function(){calls_on=false;}, duration);
}
while(calls_on){
alert('reached');
}
alert('test');
}

我已确认“持续时间”条件正在执行,并且正在设置超时句柄。然而,这个循环永远不会结束,我也从未看到 setTimeout 回调被执行。当我完全删除循环时,它工作正常(因为这使它成为函数中唯一的代码)。

如有任何帮助,我们将不胜感激。 setTimeout 是否超出范围?循环如何使超时脱轨?

最佳答案

JavaScript 是单线程的。只要代码卡在循环中,超时就永远不会运行。

任何依赖于超时完成的事情都应该在超时内。

关于javascript - setTimeout(callback) 后跟 while 循环从不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967459/

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