JavaScript执行机制-读文笔记
Last Updated:2022-08-12
宏任务和微任务
- macro-task(宏任务):包括整体代码script,setTimeout,setInterval
- micro-task(微任务):Promise,process.nextTick
不同类型的任务会进入对应的Event Queue,比如setTimeout
和setInterval
会进入相同的Event Queue。
Event Queue 和 Event Loop
宏任务队列(event queue)里头,拿出一条宏任务执行,然后执行微任务队列(event queue)里 所有微任务,再执行宏任务(宏任务队列里头取一条),如此往复循环
宏任务队列、微任务队列里头,何时会新增数据
当指定的事情完成后
譬如,setTimeout
和setInterval
这些,就是delay的时间到了,需要执行fn了,便把这个fn插入到任务队列(对setTimeout和setInterval,就是插入到宏任务队列)
相应的,promise
的resolve
或者reject
了,需要执行then
或者catch
这些fn了,便把这些个fn插入到微任务队列里头。