Interface IStream<T, U>

An object that is both a signal and an async iterable.

interface IStream<T, U> {
    [asyncIterator](): AsyncIterator<U, any, undefined>;
    connect(slot, thisArg?): boolean;
    disconnect(slot, thisArg?): boolean;
}

Type Parameters

  • T
  • U

Hierarchy (view full)

Implemented by

Methods

  • Returns AsyncIterator<U, any, undefined>

  • Connect a slot to the signal.

    Parameters

    • slot: Slot<T, U>

      The slot to invoke when the signal is emitted.

    • Optional thisArg: any

      The this context for the slot. If provided, this must be a non-primitive object.

    Returns boolean

    true if the connection succeeds, false otherwise.

    Notes

    Slots are invoked in the order in which they are connected.

    Signal connections are unique. If a connection already exists for the given slot and thisArg, this method returns false.

    A newly connected slot will not be invoked until the next time the signal is emitted, even if the slot is connected while the signal is dispatching.

  • Disconnect a slot from the signal.

    Parameters

    • slot: Slot<T, U>

      The slot to disconnect from the signal.

    • Optional thisArg: any

      The this context for the slot. If provided, this must be a non-primitive object.

    Returns boolean

    true if the connection is removed, false otherwise.

    Notes

    If no connection exists for the given slot and thisArg, this method returns false.

    A disconnected slot will no longer be invoked, even if the slot is disconnected while the signal is dispatching.