关于 javascript 运行时行为和间隔
About javascript runtime behavior and interval
当后台有区间方法运行时,会不会导致当前函数中途停止,去区间方法再return到当前函数?
例如:
setInterval(bar, 1000);
function foo(){
a();
b();
c();
}
foo();
是否有可能当达到 b()
时,例如去执行 bar
或 bar
将仅在当前函数 (foo
) 完成后执行?
PS:我想问的是它在 Chrome 上如何运作。
不,这不可能。间隔被添加到事件循环(队列)中,只有当调用堆栈为空时,才会从该事件队列中提取新项目。这意味着 foo
应该在从队列中处理新项目之前完成执行。此外,不仅通过 interval 添加的函数在 foo
完成之前不会被执行,所有其他的事情,如 UI 事件和网络请求回调。
Here is 解释这个队列是什么的好话。
当后台有区间方法运行时,会不会导致当前函数中途停止,去区间方法再return到当前函数?
例如:
setInterval(bar, 1000);
function foo(){
a();
b();
c();
}
foo();
是否有可能当达到 b()
时,例如去执行 bar
或 bar
将仅在当前函数 (foo
) 完成后执行?
PS:我想问的是它在 Chrome 上如何运作。
不,这不可能。间隔被添加到事件循环(队列)中,只有当调用堆栈为空时,才会从该事件队列中提取新项目。这意味着 foo
应该在从队列中处理新项目之前完成执行。此外,不仅通过 interval 添加的函数在 foo
完成之前不会被执行,所有其他的事情,如 UI 事件和网络请求回调。
Here is 解释这个队列是什么的好话。