关于 javascript 运行时行为和间隔

About javascript runtime behavior and interval

当后台有区间方法运行时,会不会导致当前函数中途停止,去区间方法再return到当前函数?

例如:

setInterval(bar, 1000);

function foo(){
    a();
    b();
    c();
}

foo();

是否有可能当达到 b() 时,例如去执行 barbar 将仅在当前函数 (foo) 完成后执行?

PS:我想问的是它在 Chrome 上如何运作。

不,这不可能。间隔被添加到事件循环(队列)中,只有当调用堆栈为空时,才会从该事件队列中提取新项目。这意味着 foo 应该在从队列中处理新项目之前完成执行。此外,不仅通过 interval 添加的函数在 foo 完成之前不会被执行,所有其他的事情,如 UI 事件和网络请求回调。

Here is 解释这个队列是什么的好话。