任何人都可以在这段代码中解释setImmediate和setTimeout的输出吗?

时间:2017-10-24 06:42:19

标签: node.js settimeout setimmediate

以下代码中setImmediatesetTimeout的输出结果为:

console.log("11111");

setImmediate(function A(){
console.log("2222");
});

console.log("3333");


setTimeout(function B(){

    console.log("4444");

},0);

console.log("5555");

输出:

11111
3333
5555
4444
2222

当我将setTimeout时间的时间更改为10时,输出:

11111
3333
5555
2222
4444

有人能解释一下这种行为吗?

1 个答案:

答案 0 :(得分:0)

setImmediate()用于分解长时间运行的操作,并在浏览器完成其他操作(如事件和显示更新)后立即运行回调函数。

setTimeout()调用函数或在指定的毫秒数后计算表达式。这意味着即使浏览器尚未完成,它已经在内部运行。

当您使用10表示时,它仅在 10毫秒之后才有效,这很可能是您的浏览器已经完成的。