首页 > 试题广场 >

以下代码输出顺序是: setImmediate(() =

[单选题]
以下代码输出顺序是:
setImmediate(() => {
  console.log(1);
  Promise.resolve().then(() => {
    console.log(2);
  });
}, 0);
new Promise((resolve) => {
  console.log(3);
  resolve();
}).then(() => {
  console.log(4);
  process.nextTick(() => {
    console.log(5)
  });
  setTimeout(() => {
    console.log(6);
  }, 0);
}).then(() => {
  console.log(7);
});
console.log(8);
  • 8,3,4,7,5,1,6,2
  • 8,3,4,5,7,1,6,2
  • 3,8,4,5,7,1,2,6
  • 3,8,4,7,5,1,2,6


setImmediate方法用来把一些需要长时间运行的操作放在一个回调函数里,在浏览器完成后面的其他语句后,就立刻执行这个回调函数,
该方法可以用来替代 setTimeout(0) 方法来滞后完成一些需要占用大量cpu时间的操作.
发表于 2021-09-28 19:41:19 回复(0)
我输出的结果在选项中没有啊
发表于 2021-08-25 20:41:00 回复(3)
我放在vue项目中运行结果是 38471256
发表于 2021-12-27 15:32:22 回复(0)
为啥7在5前面,preocess.nextTick优先级不是大于promise.then吗?
发表于 2022-08-30 18:49:30 回复(0)
同步任务=>微任务=>宏任务
发表于 2022-06-29 11:55:59 回复(0)
跟node版本有关吗
发表于 2022-04-04 17:32:15 回复(0)