js事件循环机制(event loop)之宏任务/微任务


 

 

微任务和宏任务属于一个队列,主要区别在于它们的执行顺序(宏任务执行完如果有可执行的微任务则执行完微任务才会继续执行下一个宏任务)

 

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

微任务:原生Promise(有些实现的promise将then方法放到了宏任务中)、process.nextTick、MutationObserver

例如:

  <script>
    console.log(222)
    Promise.resolve().then(() => {
      console.log(11)
    })
    console.log(444)
  </script>
  <script>
    console.log(333)
  </script>

打印结果是:

 

 解释:首先script是一个宏任务,两个script标签是两个宏任务,按照事件循环的规则执行顺序  第一个宏任务执行完成(222,444)==》执行存在的微任务(11)==》执行第二个宏任务(333)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM