1

为什么当我添加 '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>
4

1 回答 1

6

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

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

于 2012-09-08T09:25:54.127 回答