为什么我的setInterval停止工作?

时间:2012-09-08 09:17:40

标签: javascript

当我添加'for'时,为什么'setInterval'停止工作?

<script>
    var x=0;
    setInterval(function() {counter()},1);
function counter()
{
     x++;
}
for(var start=0; start <= 100; start++)
    {
        alert("x is "+x+" and start is "+start);
    }
</script>

1 个答案:

答案 0 :(得分:6)

由于Javascript不是(在这种情况下)多线程,你的setInterval基本上意味着“下次主线程没有做任何事情并且超时已经过去,让它执行我的回调”。

你的for循环阻塞主线程直到它完成(并且它不会退出,直到它显示了101个警报,每个警报都在等待用户输入)所以你的回调将不会发生,直到for循环结束并且主要线程可以回到“什么都不做”。