以下代码中setImmediate
和setTimeout
的输出结果为:
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
有人能解释一下这种行为吗?
答案 0 :(得分:0)
setImmediate()
用于分解长时间运行的操作,并在浏览器完成其他操作(如事件和显示更新)后立即运行回调函数。
setTimeout()
调用函数或在指定的毫秒数后计算表达式。这意味着即使浏览器尚未完成,它已经在内部运行。
当您使用10
表示时,它仅在 10毫秒之后才有效,这很可能是您的浏览器已经完成的。