js手册—事件循环、宏任务、微任务

先了解什么是宏、微任务

宏任务: 包括整体代码script、setTimeout,setInterval
微任务队列:promise,process.nexttick,Object.observe(已经不用了),Mutation.observe

在这里插入图片描述

话不多说直接撸代码吧


//js执行顺序从上往下执行
console.log('1')//第一次首先执行宏任务
setTimeout(function() {//其次执行setTimeout,但是setTimeout是异步的所以放到宏任务的事件队列里
  console.log('2')//第五次宏任务
  process.nextTick(function() {
    console.log('3')//宏任务里微任务第九次
  })
  new Promise(function(resolve) {
    console.log('4')//第六次
    resolve()
  }).then(function() {
    console.log('5')//第十一次
  })
})
process.nextTick(function() {//这是微任务,放到红任务的微任务中
  console.log('6')//第三次
})
new Promise(function(resolve) {//这里注意一下虽然promise是微任务,但是是then是微任务,不包括new Promise
  console.log('7')//第二次执行,到这之后就开始执行宏任务里的微微任务了
  resolve()
}).then(function() {
  console.log('8')//第四次,到这宏任务及宏任务里的微任务就执行完了,接着再次执行宏任务的任务队列setTimeout中函数了
})

setTimeout(function() {
  console.log('9')//第七次
  process.nextTick(function() {
    console.log('10')//宏任务里微任务第十次
  })
  new Promise(function(resolve) {
    console.log('11')//第八次
    resolve()
  }).then(function() {
    console.log('12')//第十二次到此结束
  })
})
</font>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值