以下のコードがあります(注:後でループにコードを追加しますが、最初にこれを機能させる必要があります):
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');
}
'duration'条件が実行され、タイムアウトハンドルが設定されていることを確認しました。ただし、このループが終了することはなく、setTimeoutコールバックが実行されることもありません。ループを完全に削除すると、正常に機能します(これにより、関数内の唯一のコードになります)。
どんな助けでもいただければ幸いです。setTimeoutはどういうわけか範囲外ですか?ループはどのようにタイムアウトを狂わせていますか?