希曼日记

事件循环(JS执行顺序)

事件循环

#Node

时间循环是浏览器宿主和Node与Javascript的连接的桥梁

Javascript单线程执行循序

遇到异步任务时: 将setTimeout,ajax,DOM监听等回调函数放到宏任务执行 将Promisethen()回调,Mutation Observer API ,queueMicrotask()等回调函数放到微任务执行

执行顺序:

  1. 遇到同步函数时,执行同步函数
  2. 遇到异步回调函数时,如果是微任务,会优先处理,放到微任务队列,等待微任务队列完全执行完成
  3. 遇到宏任务时,会按照用户的操作顺序,放到宏任务队列,按照循序执行,如果宏任务执行时遇到微任务,则微任务队列先去全部执行完成,在进行下一个宏任务队列