zxdfe / FE-Interview

Every step counts
34 stars 1 forks source link

第16题:聊一聊事件循环Event Loop呢,执行过程大概是怎么样的? #16

Open zxdfe opened 1 year ago

rupoly commented 1 year ago
  1. 浏览器会判断事件为同步任务还是异步任务,同步任务放到主线程的执行栈中依次执行,异步任务放到异步进程中处理。
  2. 当满足执行条件时,异步进程会把异步任务放到任务队列中,当执行栈中的所有同步任务执行完毕后,会去任务队列中查找有没有可以执行的异步任务,如果有,就执行,如果没有,就继续查找

任务也分为宏任务和微任务 每当执行完一个宏任务时,会清空所有的微任务

szgyFE commented 1 year ago

同步任务依次放到主线程的执行栈中直接执行,异步任务分为宏任务和微任务,宏任务和微任务会被异步进程执行添加至任务队列,等所有同步任务在执行栈中完成之后,拿出当前的所有微任务到主线程中执行(依次执行),当前所有微任务执行完之后再拿一个宏任务执行,在宏任务进程在执行的过程中又会继续产生微任务、新的宏任务。。。以此循环下去