Class: ProducerConsumerQueue

ProducerConsumerQueue(maxSizeopt, eqCompareropt, capacityPolicyopt, maxDeferredEnqueuesopt, maxDeferredEnqueuesCapacityPolicyopt)

new ProducerConsumerQueue(maxSizeopt, eqCompareropt, capacityPolicyopt, maxDeferredEnqueuesopt, maxDeferredEnqueuesCapacityPolicyopt)

Creates a new, empty ProducerConsumerQueue.
Parameters:
Name Type Attributes Description
maxSize Number <optional>
Optional. Defaults to Number.MAX_SAFE_INTEGER. Use this parameter to limit the maximum amount of elements this Queue can hold. When the limit is reached and items are being further enqueued, the ProducerConsumerQueue will defer further calls and only resolve them, once space is available and the item has been enqueued. Likewise, an item is dequeued immediately if the queue is non-empty. Otherwise, the call is deferred and resolved once an item becomes available. Adjusting the capacity of this queue will only affect items in it, but not deferred calls to enqueue().
eqComparer EqualityComparer.<T> <optional>
Optional. Defaults To EqualityComparer.default.
capacityPolicy ConstrainedQueueCapacityPolicy | ProducerConsumerQueueCapacityPolicy | Number <optional>
A policy for how to deal with new items once this queue reaches its maximum capacity and further items are enqueued. Additionally to @see {ConstrainedQueue}, this queue can also defer further calls
maxDeferredEnqueues Number <optional>
Optional. The maximum amount of deferred enqueue-calls. The behavior can be controlled with @see {maxDeferredEnqueuesCapacityPolicy}.
maxDeferredEnqueuesCapacityPolicy ConstrainedQueueCapacityPolicy | Number <optional>
Optional. How to deal with enqueue calls when the queue with deferred calls is full.
Author:
Source:

Members

capacityPolicy :ConstrainedQueueCapacityPolicy|ProducerConsumerQueueCapacityPolicy|Number

Because we override the setter, we need to override the getter.
Type:
Source:

capacityPolicy :void

Type:
  • void
Source:

maxDeferredEnqueues :Number

Returns the maximum amount of allowed deferred enqueue calls.
Type:
  • Number
Source:

maxDeferredEnqueues :void

Sets the maximum amount of deferred enqueue calls. If the new amount is smaller than the currently waiting calls, then calls will be dequeued in a FIFO manner and rejected.
Type:
  • void
Source:
See:
  • {_truncateDeferredEnqueues}

maxDeferredEnqueuesCapacityPolicy :ConstrainedQueueCapacityPolicy|Number

Returns the policy for dealing with enqueue calls once the waiting queue is full.
Type:
Source:

maxDeferredEnqueuesCapacityPolicy :void

Set the policy for dealing with enqueue calls once the waiting queue is full.
Type:
  • void
Source:

numDeferredDequeues :Number

Returns the currently deferred dequeue calls (waiting consumers).
Type:
  • Number
Source:

numDeferredEnqueues :Number

Returns the amount of deferred enqueue calls (waiting producers).
Type:
  • Number
Source:

Methods

dequeue() → {Promise.<T>}

Source:
Returns:
The promise is resolved once an item is available.
Type
Promise.<T>

enqueue(item) → {Promise.<this>}

Parameters:
Name Type Description
item T The item to be enqueued.
Source:
Returns:
The promise is resolved once the item got enqueued.
Type
Promise.<this>