Skip to content

fromEventObservable

Callable


  • Creates event observable logic that listens to an observable that delivers event objects.

    Event observable actor logic is described by an observable stream of objects. Actors created from event observable logic (“event observable actors”) can:

    • Implicitly send events to its parent actor
    • Emit snapshots of its emitted event objects

    Sending events to event observable actors will have no effect.

    @example
    import {
    fromEventObservable,
    Subscribable,
    EventObject,
    createMachine,
    createActor
    } from 'xstate';
    import { fromEvent } from 'rxjs';

    const mouseClickLogic = fromEventObservable(() =>
    fromEvent(document.body, 'click') as Subscribable<EventObject>
    );

    const canvasMachine = createMachine({
    invoke: {
    // Will send mouse `click` events to the canvas actor
    src: mouseClickLogic,
    }
    });

    const canvasActor = createActor(canvasMachine);
    canvasActor.start();

    Type parameters

    Parameters

    • lazyObservable: (__namedParameters: { input: TInput; self: ActorRef<ObservableSnapshot<T, any>, { type: string }>; system: AnyActorSystem }) => Subscribable<T>

      A function that creates an observable that delivers event objects. It receives one argument, an object with the following properties:

      • input - Data that was provided to the event observable actor
      • self - The parent actor
      • system - The actor system to which the event observable actor belongs.

      It should return a Subscribable, which is compatible with an RxJS Observable, although RxJS is not required to create them.

    Returns ObservableActorLogic<T, TInput>