js事件循环机制的理解


1.js的异步

js是单线程语言,它的异步是通过事件循环机制来实现的,事件循环大体由三个部分组成:运行栈(同步程序)、任务队列(异步程序)、事件循环检测。

2.异步程序可以分为宏任务和微队列

宏任务:计时器setTimeOut(0)、ajax、读取文件等

微任务:promise的then方法

3.执行顺序

执行顺序:同步程序(包括promise的前部分同步代码),process.nextTick(),微任务,宏任务,setImmediate(),计时器延时。

setImmediate() 会在异步代码一次循环之后执行

process.nextTick()在同步代码执行之后,异步代码执行之前执行