美文网首页
宏任务&微任务

宏任务&微任务

作者: Angel_6c4e | 来源:发表于2021-04-05 18:32 被阅读0次
宏任务
  • 我们可以将每次执行栈执行的代码当做是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行)
  • 每一个宏任务会从头到尾执行完毕,不会执行其他。

主代码块,setTimeout,setInterval等,都属于宏任务

微任务
  • 我们已经知道 宏任务结束后,会执行渲染,然后执行下一个 宏任务,
  • 而微任务可以理解成在当前 宏任务执行后立即执行的任务。
  • 也就是说,当 宏任务执行完,会在渲染前,将执行期间所产生的所有 微任务都执行完。

Promise,process.nextTick等,属于 微任务。

总结:
  • 执行一个 宏任务(栈中没有就从 事件队列中获取)
  • 执行过程中如果遇到 微任务,就将它添加到 微任务的任务队列中
  • 宏任务执行完毕后,立即执行当前 微任务队列中的所有 微任务(依次执行)
  • 当前 宏任务执行完毕,开始检查渲染,然后 GUI线程接管渲染
  • 渲染完毕后, JS线程继续接管,开始下一个 宏任务(从事件队列中获取)


    image.png

相关文章

  • 宏任务、微任务

  • 宏任务 微任务

    宏任务 1.事件绑定 2.定时器 3.ajax/跨域中的异步(http请求异步) 微任务 1.Promise不是n...

  • 宏任务&微任务

    宏任务 我们可以将每次执行栈执行的代码当做是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行) ...

  • 宏任务、微任务

    https://juejin.cn/post/6844903999506923528[https://juejin...

  • 微任务 宏任务

    微任务Microtask/Task 一次执行一个,一个执行完后检测当前(此次事件循环中)宏任务执行完,在下一个宏任...

  • 宏任务 微任务

    https://blog.csdn.net/zxc024000/article/details/76760966?...

  • 微任务宏任务

    宏任务:整段script代码(可以理解为外层的同步代码),settimeout,setInterval,ajax请...

  • 微任务和宏任务@小四@王云飞

    微任务和宏任务 微任务 和 宏任务 表示异步任务的两种分类。 微任务(microtask)和宏任务(macrota...

  • 2018-08-15 微任务 宏任务 MicroTask Mac

    微任务和宏任务 微任务(Microtask)宏任务(Microtask)process.nextTickPromi...

  • 宏任务和微任务

    [js 宏任务和微任务] .宏任务(macrotask )和微任务(microtask ) macrotask 和...

网友评论

      本文标题:宏任务&微任务

      本文链接:https://www.haomeiwen.com/subject/vgkocltx.html