事件队列(宏任务、微任务)

概念

因为js是单线程执行,为了防止某个进程堵塞将后面的代码堵死,所以设置了一套规则。首先,js会将同步的代码放到一起,然后压入执行栈,然后将异步代码放入异步队列。异步队列又分为宏任务和微任务,微任务队列中事件执行优先度高于宏任务。微任务:Promise,process.nextTick(Node.js),proxy对象,MutationObserver。宏任务:1. script (可以理解为外层同步代码)、 setTimeout/setInterval 、 UI rendering/UI事件、 postMessage,MessageChannel、 setImmediate,I/O(Node.js)。

顺序

先从宏任务中取第一个,然后执行的过程中,将遇到的微任务放入微任务队列,在宏任务执行完后,将微任务队列中所有的事件都需要执行完然后再去宏任务队列取第一个执行,完成一个循环。

练习题

https://juejin.cn/post/7146151385707315213

posted @ 2022-12-20 10:09  卿六  阅读(86)  评论(0编辑  收藏  举报