@vgerbot/async
    Preparing search index...

    Function queue

    • Creates a concurrency-limited async task queue.

      The returned queue processes tasks in FIFO order while allowing up to options.concurrency tasks to run at the same time.

      Type Parameters

      • T

        Input task payload type.

      • R

        Worker result type.

      Parameters

      • worker: QueueWorker<T, R>

        Async worker function used to process each task.

      • Optionaloptions: QueueOptions

        Optional queue configuration.

      Returns TaskQueue<T, R>

      A TaskQueue instance with enqueue, flow-control, and cancellation APIs.

      import { queue } from "@vgerbot/async";

      const q = queue(
      async (task: { id: number; ms: number }, token) => {
      await token.sleep(task.ms);
      return `done:${task.id}`;
      },
      { concurrency: 2 },
      );

      const p1 = q.push({ id: 1, ms: 100 });
      const p2 = q.push({ id: 2, ms: 50 });
      const p3 = q.push({ id: 3, ms: 10 });

      const results = await Promise.all([p1, p2, p3]);
      await q.onIdle();

      // results -> ["done:1", "done:2", "done:3"]
      // q.idle -> true