Interface IQueueMutableWithEvents<V>

Queue (mutable). See also IQueueImmutable for the immutable version.

Queues are useful if you want to treat 'older' or 'newer' items differently. Enqueing adds items at the back of the queue, while dequeing removes items from the front (ie. the oldest).

const q = queue();       // Create
q.enqueue(`a`, `b`); // Add two strings
const front = q.dequeue(); // `a` is at the front of queue (oldest)
const q = queue({capacity: 5, discardPolicy: `newer`});
interface IQueueMutableWithEvents<V> {
    dequeue: (() => undefined | V);
    enqueue: ((...toAdd: readonly V[]) => number);
    get isDisposed(): boolean;
    get isEmpty(): boolean;
    get isFull(): boolean;
    get length(): number;
    get peek(): undefined | V;
    addEventListener<K>(name: K, listener: ((event: QueueMutableEvents<V>[K], sender: SimpleEventEmitter<QueueMutableEvents<V>>) => void)): void;
    at(index: number): V;
    clear(): void;
    dispose(): void;
    fireEvent<K>(type: K, args: QueueMutableEvents<V>[K]): void;
    removeEventListener<K>(type: K, listener: ((event: QueueMutableEvents<V>[K], sender: SimpleEventEmitter<QueueMutableEvents<V>>) => void)): void;
    removeWhere(predicate: ((item: V) => boolean)): number;
    toArray(): readonly V[];
}

Type Parameters

  • V

Hierarchy (view full)

Properties

dequeue: (() => undefined | V)

Dequeues (removes oldest item / item at front of queue)

Use peek to look at the item at front of queue without removing it.

Type declaration

    • (): undefined | V
    • Returns undefined | V

      Item, or undefined if queue is empty

enqueue: ((...toAdd: readonly V[]) => number)

Enqueues (adds items to back of queue). If a capacity is set, not all items might be added.

Type declaration

    • (...toAdd): number
    • Parameters

      • Rest...toAdd: readonly V[]

      Returns number

      How many items were added

Accessors

  • get isDisposed(): boolean
  • Returns boolean

  • get isEmpty(): boolean
  • Returns true if queue is empty

    Returns boolean

  • get isFull(): boolean
  • Is queue full? Returns false if no capacity has been set

    Returns boolean

  • get length(): number
  • Number of items in queue

    Returns number

  • get peek(): undefined | V
  • Returns front of queue (oldest item), or undefined if queue is empty

    Returns undefined | V

Methods

  • Returns the item at given rank (0 being front of queue)

    Parameters

    • index: number

    Returns V

  • Removes values that match predicate.

    // Eg queue of strings, compare by value
    queue.removeWhere(v => v === `someValue`);

    // Eg queue of objects, compare by reference
    queue.removeWhere(v => v === someTarget);

    // Eg use ixfx function to compare value of objects, regardless of key ordering
    queue.removeWhere(v => isEqualValueIgnoreOrder(v, someTarget));

    Parameters

    • predicate: ((item: V) => boolean)
        • (item): boolean
        • Parameters

          • item: V

          Returns boolean

    Returns number

    Returns number of items removed.

  • Returns a copy of data in queue as an array

    Returns readonly V[]