A discrete event that may be monitored via callback. Could call it "event" but that could be confused with Matter cluster events and/or DOM events.

interface Observable<T, R> {
    isAsync?: boolean;
    isObserved: boolean;
    [asyncIterator](): AsyncIterator<T[0], any, any>;
    [dispose](): void;
    emit(...args: T): undefined | R;
    isObservedBy(observer: Observer<T, R>): boolean;
    off(observer: Observer<T, R>): void;
    on(observer: Observer<T, R>): void;
    once(observer: Observer<T, R>): void;
}

Type Parameters

  • T extends any[] = any[]

    arguments, should be a named tuple

  • R = void

Hierarchy (view full)

Properties

isAsync?: boolean

This flag indicates whether the observable is asynchronous. Any observable that accepts promise returns may be asynchronous but this information is not available at runtime unless you specify here, typically via AsyncObservable.

isObserved: boolean

True if there is at least one observer registered.

Methods

  • Observable supports standard "for await (const value of observable").

    Using an observer in this manner limits your listener to the first parameter normally emitted and your observer cannot return a value.

    Returns AsyncIterator<T[0], any, any>

  • Release resources associated with the observable.

    Returns void

  • Notify observers.

    Parameters

    • Rest...args: T

    Returns undefined | R

  • Determine whether an observer is registered.

    Parameters

    Returns boolean

  • Remove an observer.

    Parameters

    Returns void

  • Add an observer.

    Parameters

    Returns void

  • Add an observer that emits once then is unregistered.

    Parameters

    Returns void