js中宏任务与微任务

js是一门单线程语言,在执行代码的过程中,程序也分同步任务与异步任务,而异步任务中分为宏任务微任务

分类:

  • 宏任务:ajaxsetTimeoutsetIntervalDOM监听、UI Rendering
  • 微任务:Promisethen回调、Mutation Observer APIqueueMicrotask()

执行顺序:

因为在事件循环里面分为宏队列微队列。在每一次执行宏队列里面宏任务时,先去查看微队列里面的微任务有没有,如果有微任务,先执行微任务,然后再去执行宏任务。要保证宏任务执行前,微队列里面没有微任务!

展示图:

注意点:比如说在代码执行的时候,分为同步与异步(宏任务、微任务),同步会依次执行,异步任务则会看是什么类型的,比如先遇到第一个宏任务,那么把第一个宏任务放到宏队列第一个,微任务也是一样的操作,等同步的任务都执行完了,就开始去执行异步啦,

就按照上面说的顺序一样执行,打比方:有XX个宏任务,XX个微任务,这俩个分别怎么顺序执行的呢?【先来先排队,后来后排队】。先加入宏或者先加入微队列里面的任务,XX任务到执行的时候,先排队的先执行,依次顺序!

必须保证:宏任务执行前,微队列里面没有微任务!


版权声明:本文为weixin_61728412原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。