1.执行全局Script同步代码,这些同步代码有一些是同步语句,有一些是异步语句(比如setTimeout等);
2.全局Script代码执行完毕后,执行栈Stack会清空;
3.从微队列中取出位于队首的回调任务,放入执行栈Stack中执行,执行完后微队列长度减1;
4.继续循环取出位于微队列的任务,放入执行栈Stack中执行,以此类推,直到直到把微任务执行完毕。注意,如果在执行微任务的过程中,又产生了微任务,那么会加入到微队列的末尾,也会在这个周期被调用执行;
5.微队列中的所有微任务都执行完毕,此时微队列为空队列,执行栈Stack也为空;
6.取出宏队列中的任务,放入执行栈Stack中执行;
7.执行完毕后,执行栈Stack为空;
8.重复第3-7个步骤;
JS异步编程
最新推荐文章于 2024-08-14 15:45:18 发布