macrotask 宏任务 + microtask 微任务区别

  • macrotasks: setTimeout setInterval setImmediate I/O UI渲染
  • microtasks: Promise process.nextTick Object.observe MutationObserver
process.nextTick(() => {
  console.log('nextTick')
})
Promise.resolve()
  .then(() => {
    console.log('then')
  })
setImmediate(() => {
  console.log('setImmediate')
})
console.log('end')
//end
//nextTick
//then
//setImmediate
//解释:process.nextTick 和 promise.then 都属于 microtask,
而 setImmediate 属于 macrotask,在事件循环的 check 阶段执行。
事件循环的每个阶段(macrotask)之间都会执行 microtask,
事件循环的开始会先执行一次 microtask。

参考:
https://juejin.im/entry/58332d560ce46300610e4bad
https://segmentfault.com/a/1190000008866165
http://www.jb51.net/article/57882.htm

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容