导航栏: 首页 评论列表

一个关于宏任务和微任务的小知识点

默认分类 2021/01/05 08:02

不运行代码,猜猜下面的输出顺序?

代码如下:

setTimeout(function() {
  console.log('step1')
}, 0);

new Promise(function(resolve) {
  console.log('step2');
  for (var i = 1; i <= 3; i++) {
    i == 2 && resolve();
    console.log(i)
  }
}).then(function() {
  console.log('step3')
});

console.log('step4');

介绍两个概念:

宏任务:包括整体代码script,setTimeout,setInterval,setImmediate

微任务:Promise,process.nextTick

结果顺序: step2 -> 1 -> 2 -> 3 -> step4 -> step3 -> step1


>> 留言评论