Licence
MIT
Version
0.1.1
Deps
0
Size
3 kB
Vulns
0
Weekly
0
ct0r/promise-queue
Minimalistic promise queue.
Installation
npm install @ct0r/promise-queue
Usage
const queue = require("@ct0r/promise-queue");
const enqueue = queue({ concurrency: 2 });
Promise.all([
enqueue(() => fetch("https://example.com/1")),
enqueue(() => fetch("https://example.com/2")),
]);
Arguments can be passed separately:
Promise.all([
enqueue(fetch, "https://example.com/1"),
enqueue(fetch, "https://example.com/2"),
]);
Can be used to add concurrency support to existing async function:
const enqueueFetch = queue({ fn: fetch });
Promise.all([
enqueueFetch("https://example.com/1"),
enqueueFetch("https://example.com/2"),
]);
Perfect in combination with iterables:
Promise.all(
["https://example.com/1", "https://example.com/2"].map(enqueueFetch)
);
API
queue({ concurrency = 1, fn })
Sets concurrency level and returns enqueue function.
enqueue(...args)
Returned by queue if fn is provided.
enqueue(fn, ...args)
Returned by queue if fn is not provided.