js是一门单线程语言,在执行代码的过程中,程序也分同步任务与异步任务,而异步任务中分为宏任务与微任务
分类:
- 宏任务:ajax、setTimeout、setInterval、DOM监听、UI Rendering等
- 微任务:Promise的then回调、 Mutation Observer API、queueMicrotask()等
执行顺序:
因为在事件循环里面分为宏队列和微队列。在每一次执行宏队列里面宏任务时,先去查看微队列里面的微任务有没有,如果有微任务,先执行微任务,然后再去执行宏任务。要保证宏任务执行前,微队列里面没有微任务!
展示图:
注意点:比如说在代码执行的时候,分为同步与异步(宏任务、微任务),同步会依次执行,异步任务则会看是什么类型的,比如先遇到第一个宏任务,那么把第一个宏任务放到宏队列第一个,微任务也是一样的操作,等同步的任务都执行完了,就开始去执行异步啦,
就按照上面说的顺序一样执行,打比方:有XX个宏任务,XX个微任务,这俩个分别怎么顺序执行的呢?【先来先排队,后来后排队】。先加入宏或者先加入微队列里面的任务,XX任务到执行的时候,先排队的先执行,依次顺序!