Skip to content

Parallel Promise Limiter (pp-limit) 是一个 Promise 并发控制器,可以控制同时进行的任务数量。

License

Notifications You must be signed in to change notification settings

RSoraM/pp-limit

Repository files navigation

pp-limit

npm version bundle size MIT License

Parallel Promise Limiter (pp-limit) 是一个 Promise 并发控制器,可以控制同时进行的任务数量。

安装

pnpm i @rsoram/pp-limit

使用

初始化

允许同时运行 5 个任务的并行控制器

import { PPLimiter } from "@rsoram/pp-limit";
const ppl = new PPLimiter(5);

add

add 函数接收一个普通函数,该函数须返回一个 Promise,以此防止 Promise 被立即执行

add 函数返回的 Promise 可视作输入的 Promise

Example: 添加任务

ppl
  .add(() => new Promise((resolve) => resolve(1)))
  .then((result) => console.log(`${result} == 1`)); // 1 == 1

Example: 并发控制

const tasks = Array.from(
  { length: 20 },
  (_, i) => () => new Promise((resolve) => resolve(i)),
);

await Promise.all(tasks.map((t) => ppl.add(t)));

About

Parallel Promise Limiter (pp-limit) 是一个 Promise 并发控制器,可以控制同时进行的任务数量。

Resources

License

Stars

Watchers

Forks

Packages

No packages published