任务队列就是在主线程外,一个用于执行异步操作的队列。 区分微任务和宏任务。
定义
- 微任务
- promise,async,await
- process.nextTick(node)
- 宏任务
- setTimeout,setInterval,setImmediate
执行顺序
主线程执行完毕后,开始从任务队列中拿任务出来执行,直到任务队列清空。先微任务,再宏任务。注意,当任务队列开始执行时,必然会执行到底。比如执行宏任务到一半时,产生了微任务,此时会把微任务插入到微任务队列,等到执行完本次宏任务队列,再去执行微任务。也就是不会中断当前队列的执行。