谁能解释这段代码中 setImmediate 和 setTimeout 的输出?

Can anybody explain the output of setImmediate and setTimeout in this code?

以下代码中 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

任何人都可以向我解释这种行为吗?

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

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

当您输入 10 时,它只会在 10 毫秒 后起作用,这很可能是您的浏览器已经完成。