【JS】event loop及promise、async执行顺序

 

明确:js是单线程的;其他多线程如webworker都是由js模拟出来的。为了防止任务耗时过长而造成阻塞,引入事件循环等一系列概念。

JavaScript 将任务分为两种:同步任务和异步任务

  • 同步任务:执行完后能立即得出结果的任务。同步任务在主线程中执行,在执行过程中产生堆栈,堆中存储复杂数据类型(Object),栈中存储基本数据类型(String、Number、Boolean、Null、Undefined、Symbol)。
  • 异步任务:执行后无法立即得出结果,需要等待一段时间获得相应的任务。其中又分为宏任务(Macrotask)和微任务(Microtask)。

宏任务:主程序

你可能感兴趣的:(【JS】event loop及promise、async执行顺序)