JavaScript执行机制-读文笔记

Last Updated:

2022-08-12

原文post

宏任务和微任务

不同类型的任务会进入对应的Event Queue,比如setTimeoutsetInterval会进入相同的Event Queue。

Event Queue 和 Event Loop

流程图

宏任务队列(event queue)里头,拿出一条宏任务执行,然后执行微任务队列(event queue)里 所有微任务,再执行宏任务(宏任务队列里头取一条),如此往复循环

宏任务队列、微任务队列里头,何时会新增数据

指定的事情完成后 譬如,setTimeoutsetInterval这些,就是delay的时间到了,需要执行fn了,便把这个fn插入到任务队列(对setTimeout和setInterval,就是插入到宏任务队列) 相应的,promiseresolve或者reject了,需要执行then或者catch这些fn了,便把这些个fn插入到微任务队列里头。

宏任务队列里头取一个执行。微任务队列是把所有都执行了