event loop

精华结论

  • 浏览器的 Event Loop 遵循的是 HTML5 标准,而 NodeJs 的 Event Loop 遵循的是 libuv。
  • macro-task(宏任务):包括整体代码script,setTimeout,setInterval
  • micro-task(微任务):Promise,process.nextTick

执行顺序
主线程 --> 微任务 --> 宏任务

event loop_第1张图片
同步异步.png
event loop_第2张图片
宏任务、微任务.png

大力推荐阅读文章

偏向于浏览器角度:
这一次,彻底弄懂 JavaScript 执行机制

node角度
不要混淆nodejs和浏览器中的event loop

阮一峰文章:
JavaScript 运行机制详解:再谈Event Loop

tasks-microtasks-queues-and-schedules/

HTML系列:macrotask和microtask

深入理解js事件循环机制(浏览器篇)

你可能感兴趣的:(event loop)