batch-perform-promise
TypeScript icon, indicating that this package has built-in type declarations

5.0.0 • Public • Published

batch-perform-promise

5.0版本使用father打包+semaphore实现

批量执行promise的方法,能够自定义“并行”发出的promise的个数

并行: promise发出等待时,为并行等待,由于js单线程,发出多个promise时是同步执行的,等待为并行,整体上有一种并行执行promise的感觉

快速启动

并行发出任务

import { batchPerformPromise } from 'batch-perform-promise';

// 准备任务以及处理函数
const payloads = ['p1', 'p2', 'p3'];
const handler = async (value: string) => Promise.resolve(value)

// await方式异步调用
const tasks = await batchPerformPromise<string>(payloads, handler);

// 查看调用结果 task
tasks[0] === {
  done: true,
  error: null,
  payload: 'p1',
  success: true,
}

并行执行时间

import { batchPerformPromise } from 'batch-perform-promise';

// 准备任务以及处理函数
const payloads = ['p1', 'p2', 'p3', 'p4', 'p5'];
// 处理函数,每2000ms执行完成一个promise
const handler = (payload: string) => new Promise((resolve) => {
  const timer = setTimeout(() => {
    clearTimeout(timer);
    resolve(payload);
  }, 2000);
});

// await方式异步调用
await batchPerformPromise<string>(payloads, handler);

// 一共执行时间6s
// [p1, p2] 2s
// [p3, p4] 2s
// [p5,   ] 2s
//  共计6s

更多使用方式参考test文件

Readme

Keywords

none

Package Sidebar

Install

npm i batch-perform-promise

Weekly Downloads

15

Version

5.0.0

License

MIT

Unpacked Size

86.7 kB

Total Files

19

Last publish

Collaborators

  • z-hnan