关于javascript运行时行为和间隔

时间:2016-10-18 19:24:14

标签: javascript google-chrome setinterval

当有一个运行后台的区间方法时,是否会导致当前函数在中间停止,请执行区间方法然后返回当前函数?

例如:

setInterval(bar, 1000);

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

foo();

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

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

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。间隔将添加到事件循环(队列)中,并且仅当调用堆栈为空时才会拾取此事件队列中的新项目。这意味着foo应该在从队列处理新项目之前完成执行。此外,不仅通过间隔添加的函数在foo完成之前不会执行,它还包括UI事件和网络请求回调等所有其他内容。

Here is一个很好的演讲,解释了这个队列是什么。