任务队列

288 阅读1分钟

任务队列就是在主线程外,一个用于执行异步操作的队列。 区分微任务和宏任务。

定义

  • 微任务
  1. promise,async,await
  2. process.nextTick(node)
  • 宏任务
  1. setTimeout,setInterval,setImmediate

执行顺序

主线程执行完毕后,开始从任务队列中拿任务出来执行,直到任务队列清空。先微任务,再宏任务。注意,当任务队列开始执行时,必然会执行到底。比如执行宏任务到一半时,产生了微任务,此时会把微任务插入到微任务队列,等到执行完本次宏任务队列,再去执行微任务。也就是不会中断当前队列的执行。