首页 > 其他分享 >3.宏任务(macrotask)和微任务(microtask)分别有哪些,有哪些区别?

3.宏任务(macrotask)和微任务(microtask)分别有哪些,有哪些区别?

时间:2023-03-04 18:11:07浏览次数:51  
标签:异步 macrotask 哪些 队列 microtask 区别 任务 执行

js宏任务有:<script>整体代码、setTimeout、setInterval、setImmediate、Ajax、DOM事件

js微任务有:process.nextTick、MutationObserver、Promise.then catch finally

 

执行顺序

执行顺序:先执行同步代码,遇到异步宏任务则将异步宏任务放入宏任务队列中,遇到异步微任务则将异步微任务放入微任务队列中,当所有同步代码执行完毕后,再将异步微任务从队列中调入主线程执行,微任务执行完毕后再将异步宏任务从队列中调入主线程执行,一直循环直至所有任务执行完毕。

 

有什么区别?

  • 进程的切换时宏任务,线程的切换是微任务
  • 宿主环境发起的叫宏任务,由语言标准提供的叫微任务
  • 宏任务会触发新一轮的tick,微任务不会

 

为什么要区别他们?

 

微任务的出现,使得在宏任务执行完,到浏览器渲染之前,可以在这个阶段插入任务的能力。

而宏任务和微任务,本质上也是让 JS 脚本能够在渲染阶段前后,有了完成某些功能的能力。

标签:异步,macrotask,哪些,队列,microtask,区别,任务,执行
From: https://www.cnblogs.com/alwaysrun/p/17178760.html

相关文章