- 主线程读取JS代码,此时同步环境,形容对应的堆和执行栈
- 主线程遇到异步任务,会推给异步线程进行执行。
- 异步处理完成后,将对应的异步任务推入任务队列
- 主线程查询任务队列,执行微任务,将其按照顺序执行,全部执行完毕。
- 主线程查询任务队列,执行宏任务,取得第一个宏任务,执行完成。
- 重复4,5步骤。
异步分为宏任务(ajax请求,定时器,文件操作)和微任务(Promise.then、.catch、.finally,process.nextTick)
异步分为宏任务(ajax请求,定时器,文件操作)和微任务(Promise.then、.catch、.finally,process.nextTick)