AsyncJobQueue
In‑process async job queue with configurable concurrency. Jobs are enqueued and processed in parallel up to the given limit.
Example
Section titled “Example”// Create a queue that runs up to 2 jobs at a timeconst queue = new AsyncJobQueue(2);
// Enqueue multiple async tasksfor (let i = 1; i <= 5; i++) { queue.enqueue(async () => { console.log(`Job ${i} starting`); // simulate work await new Promise(res => setTimeout(res, 500)); console.log(`Job ${i} done`); });}
// Wait for all jobs to finishawait queue.drain();console.log('All jobs completed');
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new AsyncJobQueue(
concurrency
):AsyncJobQueue
Parameters
Section titled “Parameters”concurrency
Section titled “concurrency”number
= 1
Maximum number of jobs to run in parallel. Minimum 1.
Returns
Section titled “Returns”AsyncJobQueue
Accessors
Section titled “Accessors”length
Section titled “length”Get Signature
Section titled “Get Signature”get length():
number
Number of jobs still waiting in the queue.
Returns
Section titled “Returns”number
Methods
Section titled “Methods”drain()
Section titled “drain()”drain():
Promise
<void
>
Wait until all currently enqueued and in‑flight jobs have completed.
Returns
Section titled “Returns”Promise
<void
>
enqueue()
Section titled “enqueue()”enqueue(
job
):void
Add a new job to the queue and trigger processing.
Parameters
Section titled “Parameters”() => Promise
<void
>
A function returning a Promise; its resolution signals job completion.
Returns
Section titled “Returns”void