在等待队列里的都是异步,等待队列里有微任务,宏任务。
微任务:promise里的then,async,await
宏任务:setTimeout()
执行优先级:同步,微任务,宏任务
Event Loop
1) 同步代码,一行一行地放在 call stack调用栈 中执行。
2)遇到异步会先“记录”下代码,等待执行时机,执行时机到了,将“记录”下来的代码放到 callback queue回调函数队列。
3)当call stack执行栈为空,Event Loop开始工作。
4)Event Loop 轮询查找callback queue中是否有可执行的代码,如果有就代码放入call stack执行栈中。
5)Event Loop 如果没找到可执行代码,则继续轮询查找