Skip to content

Latest commit

 

History

History
94 lines (77 loc) · 2.72 KB

zh-cn.md

File metadata and controls

94 lines (77 loc) · 2.72 KB

priority-promise-queue

让 Promise 的队列按照指定的请求顺序返回响应结果。

使用 PriorityPromiseQueue

import PriorityPromiseQueue from 'priority-promise-queue'

const ppq = new PriorityPromiseQueue()

ppq.add(new Promise((resolve: any) => resolve('1')))
ppq.add(new Promise((resolve: any) => setTimeout(() => resolve('2'), 100)))
ppq.add(new Promise((resolve: any) => setTimeout(() => resolve('3'), 10)))
ppq.add(new Promise((resolve: any) => resolve('4')))
ppq.add([
  new Promise((resolve: any) => setTimeout(() => resolve('5'), 300)),
  new Promise((resolve: any) => resolve('6')),
])

ppq.call((result: any[], done: boolean) => {
  result.forEach((item: any[]) => {
    const [err, data] = item;
    if (!err && data) {
      // do something...
    }
  })

  if (done) {
    // end...
  }
})

// 执行结果  
// [[null, '1']], false
// [[null, '2'],[null, '3'],[null, '4']], false
// [[null, '5'],[null, '5']], true

API

函数 说明 参数
add 将 Promise 加入到队列中 Promise
call 处理队 Promise 列中的响应 [[error, data]] 返回的承诺数组,每个子项都是包含了 error 和 data 的数组,error 默认是 null,如果 error 存在则表示该 promise 的请求报错了

搭建开发环境

1. fork 项目,然后 clone 到本地
git clone git@github.com:txs1992/priority-promise-queue.git

2. 安装依赖(请确保您的电脑安装了 Node.js)
yarn

3. 运行
yarn serve

License

MIT