概念

队列是一个先进先出的数据结构,顾名思义,生活中的排队就是队列结构
JavaScript中没有队列,但可以用Array实现所有队列的功能

  1. const queue = []
  2. /** 入队 */
  3. queue.push(1)
  4. queue.push(2)
  5. /** 出队 */
  6. item1 = queue.shift()
  7. item2 = queue.shift()

队列的应用场景

需要先进先出的场景,比如:食堂排队打饭、JS异步中的任务队列、计算最近的请求次数……

JS异步中的任务队列

07、队列 - 图1

JS是单线程,无法同时处理异步中的并发任务。
什么叫并发任务呢?比如说我们在页面里同时发出10个请求,这10个请求也同时完成了,我们在这个10个请求完成后的回调里都写了一些逻辑代码,那么这个时候JS应该去执行哪个请求的回调逻辑呢?如果没有引入队列结构,它无法处理这样的问题。JS使用任务队列先进先出的特性先后处理异步任务。