Event Loop

涉及到的角色:

  • call stack  调用栈
  • event table 事件注册表,主要做异步事件与事件回调的对应关系映射
  • event quene 事件回调队列

1.同步代码直接放入call stack

2.遇到异步 ,如setTimeout ,会先在event table中产生映射,等异步处理完,该执行会调函数的时候,才将会调函数push 到 evevt queue中等待执行

3.如果主线成空闲,就从event queue中shift一个放入 call stack 中执行

4.然后,重复

 

 

其中 队列又分为两种, 如下图: 

微任务,由js 引擎控制,具有优先权,微任务队列清空后,就可以执行渲染UI

 

 

posted @ 2020-02-25 17:12  bigman-bugman  阅读(87)  评论(0编辑  收藏  举报