javascript提供一种机制,会将所有定时器放到一个队列里面,当主线程的代码执行完之后再执行队列里面的代码。
-
异步函数
-
宏任务:所有主线程上执行的任务(除了异步函数以外的所有任务)
-
微任务:异步任务
-
比如:现在有微任务,也有宏任务
* 执行js脚本
* ----→ ↓ ←----------------------
* | 宏任务---定时器--->任务队列 ↑
* | ↓ |
* | 完成宏任务 |
* | ↓ (检查是否有微任务)------
* ----执行微任务
*
- js执行过程:
1.首先执行宏任务,当执行宏任务的时候,发现有定时器任务的时候,会将定时器添加到宏任务的任务队列里面,
2.继续完成宏任务,
3.当宏任务完成后,会检测是否有微任务,如果有,则执行微任务
4.执行完微任务后回到宏任务
5.检查任务队列里面有没有未完成的任务队列
6.如果有,则执行,结束。
7.如果没有,结束js脚本的执行
网友评论