1、概念
JavaScript把异步任务又做了进一步的划分,异步任务又分为两类,分别是:
一、宏任务( macrotask)
- 异步Ajax请求
- setTimeout、setInterval
- 文件操作
- 其它宏任务
二、微任务( microtask)
- Promise.then、.catch和.finally
- process.nextTick
- 其它微任务
2、执行顺序
3、实际场景分析
4、面试题
问题:输出结果为?
正确的输出顺序是:2431
分析:
- 先执行所有的同步任务
执行第6行、第12行代码 - 再执行微任务
执行第9行代码 - 再执行下一个宏任务
执行第2行代码