Skip to content

PromiseQueue 异步队列控制

PromiseQueue 限制同时运行的任务数量,任务既可以返回 Promise,也可以直接返回同步值。并发数必须是正整数。

ts
import { PromiseQueue } from 'cat-tool';

const queue = new PromiseQueue(2);
const tasks = urls.map((url) =>
  queue.enqueue(() => fetch(url).then((response) => response.json())),
);

const values = await Promise.all(tasks);
console.log(queue.finish()); // 按完成顺序返回结果快照
console.log(queue.activeCount, queue.pendingCount);

基于 MIT 许可发布