当有一个运行后台的区间方法时,是否会导致当前函数在中间停止,请执行区间方法然后返回当前函数?
例如:
setInterval(bar, 1000);
function foo(){
a();
b();
c();
}
foo();
有可能在达到b()
时,例如去bar
或bar
只能在当前函数(foo
)完成后执行吗?
PS:我问的是它如何在Chrome上运行。
答案 0 :(得分:1)
不,这是不可能的。间隔将添加到事件循环(队列)中,并且仅当调用堆栈为空时才会拾取此事件队列中的新项目。这意味着foo
应该在从队列处理新项目之前完成执行。此外,不仅通过间隔添加的函数在foo
完成之前不会执行,它还包括UI事件和网络请求回调等所有其他内容。
Here is一个很好的演讲,解释了这个队列是什么。