我在下面有以下代码(请注意,稍后我将在循环中添加更多代码,但我需要首先使用它):
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 是否超出范围?循环如何使超时脱轨?