observavir - v2.4.2
    Preparing search index...

    Class Trigger<Value>

    An observable meant for one-off commands rather than state. Same as Observable except that values are set with .trigger(), every .trigger() call fires listeners (even when the same value is sent twice), and there is no .value property. Read the value with .consumeValue() instead: every call after the first returns undefined until .trigger() is called again.

    .consumeValue() only yields the most recent trigger: earlier unread triggers are dropped. Use .listen() to receive every trigger.

    import {Trigger} from 'observavir';

    const commands = new Trigger<string>();

    commands.consumeValue(); // undefined
    commands.trigger('open');
    commands.consumeValue(); // 'open'
    commands.consumeValue(); // undefined (already consumed)
    import {Trigger} from 'observavir';

    const refresh = new Trigger<void>();

    refresh.consumeTrigger(); // false
    refresh.trigger();
    refresh.consumeTrigger(); // true
    refresh.consumeTrigger(); // false (already consumed)
    import {Trigger} from 'observavir';

    const commands = new Trigger<string>();

    commands.listen(false, (command) => {
    // fires twice with 'open', listeners do not consume the value
    });

    commands.trigger('open');
    commands.trigger('open');
    commands.consumeValue(); // 'open'

    Type Parameters

    • Value

    Implements

    Index
    "[observableMarker]": true = ...
    hasTrigger: boolean = false

    true if .trigger() has been called since the last .consumeValue() or .consumeTrigger() call. Reading this does not consume the trigger.

    observable: Observable<Value | undefined> = ...
    • Tells you if there's an unconsumed trigger, and then consumes it. Does not return the trigger's value, use .consumeValue() for that.

      Returns boolean

      • true: if a trigger has not yet been consumed.
        • false: if the trigger has already been consumed.
    • Gives you the most recent triggered value if the trigger has not been consumed. In order to distinguish void or undefined set values from the trigger being consumed, use consumeTrigger() instead.

      Returns Value | undefined

      • The latest unconsumed trigger value, if any.
        • undefined is there is no unconsumed trigger.
    • Clean up all listeners and any other internal state.

      Returns void

    • Listen to triggered values. Listeners receive the value directly and do not consume it.

      Parameters

      • fireImmediately: boolean

        If true, the callback will immediately be fired with whatever the last triggered value is.

      • callback: ObservableListener<Value | undefined>

        The callback to fire when .trigger() is called.

      Returns RemoveListenerCallback

      A callback to remove the listener.

    • Removes a listener from the trigger.

      Parameters

      Returns boolean

      true if the callback was removed. false if the callback was not removed (meaning it was never added in the first place).

    • Set a new value and fire all listeners, regardless of the current value.

      Parameters

      • newValue: Awaited<Value>

      Returns boolean