宏任务和微任务

510 阅读1分钟

宏任务和微任务

宏任务浏览器Node
I/O
setTimeout
setInterval
setImmediate×
requestAnimationFrame
微任务浏览器Node
process.nextTick×
MutationObserver×
Promise.then / catch / finally

事件

经典例子:

银行柜台前排着一条队伍,都是存钱的人,存钱属于宏任务,这条队伍就是宏任务队列,当一个‘宏大爷’被叫到了自己的号码,就上前去--被处理,处理存钱业务时,‘宏大爷’突然想给自己的存款办个微理财(微任务),那么银行职员就将他的需求添加到自己的微任务队列,大爷就不用再排队了,直接在存钱宏任务进行完后就处理衍生出来的微任务理财,办理财时大爷又说办个信用卡,那就又排到微任务队列里。但要是在此次存钱时‘宏大爷’说他还要存钱,且是他老伴要存钱,也是宏任务,但不好意思,需要取号到宏任务队列的后面排队(这里就是在宏任务进行时产生微任务和宏任务的处理方式)

作者:蟹黄同学 链接:juejin.cn/post/695636… 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。