🚨 Announcing Vendure v2 Beta

AsyncQueue

AsyncQueue

Package: @vendure/core File: async-queue.ts

A queue class for limiting concurrent async tasks. This can be used e.g. to prevent race conditions when working on a shared resource such as writing to a database.

Signature

class AsyncQueue {
  constructor(label: string = 'default', concurrency: number = 1)
  push(task: Task<T>) => Promise<T>;
}

Members

constructor

method
type:
(label: string = 'default', concurrency: number = 1) => AsyncQueue

push

method
type:
(task: Task<T>) => Promise<T>
Pushes a new task onto the queue, upon which the task will either execute immediately or (if the number of running tasks is equal to the concurrency limit) enqueue the task to be executed at the soonest opportunity.