Initialize the queue.
A integer >= 1 specifying the number of elements after which queue() effectively blocks (i.e. the promise returned by it does not get "immediately" fulfilled for some informal value of immediately).
An asynchronous (non-limiting) queue backing the data. It defaults to a AsyncQueue.
Dequeue an element, waiting for data to be available if necessary.
A promise which is fulfilled when an element (as queued by queue()) becomes available. If multiple dequeus() are issued sequentially, it is implementation-defined whether they are fulfilled in the same order or not. However, the data is still retrieved in FIFO fashion, meaning the first fulfilled promise gets the first element, the second fulfilled the second one and so forth.
Offer an element, only queueing it if entrance is available at the time of the call.
True if the element could be inserted right away. False otherwise.
Offer all elements of an iterable for in-order insertion.
The number of elements, which could be inserted right away. Possibly 0 when the queue was full at the time of the call.
Offer all elements of an asynchronous iterable for in-order insertion.
A promise resolving to the number of elements, which could be inserted (offered successfully) consecutively without waiting. Possibly 0 when the queue was full at the time of the call. Fulfillment of this promise is not guaranteed in case of infinite iterables.
Dequeue an element if available or throw an exception otherwise.
The first element of the queue.
Queue an element, waiting for entrance if necessary.
Queue all elements of an iterable, e.g. an array or a generator function.
Queue all elements of an asynchronous iterable, e.g. an asynchronous generator functions.
Return the current size at the moment of the call.
Even though code like
if (queue.size() >= 1) {
const element = queue.poll();
}
is technically not wrong (due to JS' execution model), users are advised to avoid this pattern. Instead, users are encouraged to
Generated using TypeDoc
Asynchronous element-limited FIFO queue with a Promise-driven dequeue operation.
{@link AsyncLimitedQueue#queue} operations are delayed (in unspecified order) until space becomes available through dequeue operations.