1. 什么是宏任务和微任务
JavaScript 把异步任务又做了进一步的划分,异步任务又分为两类
1: 宏任务(macrotask):
- 异步 Ajax 请求、
- setTimeout、setInterval、
- 文件操作
- 其它宏任务
- DOM事件
2: 微任务(microtask):
- Promise.then、.catch 和 .finally
- process.nextTick
- 其它微任务
2. 宏任务和微任务的执行顺序
- 每一个宏任务执行完之后,都会检查是否存在待执行的微任务,
- 如果有,则执行完所有微任务之后,再继续执行下一个宏任务。
- 先执行微任务,在执行宏任务