Skip to content

fromCallback

Callable


  • An actor logic creator which returns callback logic as defined by a callback function.

    @remarks

    Useful for subscription-based or other free-form logic that can send events back to the parent actor.

    Actors created from callback logic (“callback actors”) can:

    • Receive events via the receive function
    • Send events to the parent actor via the sendBack function

    Callback actors are a bit different from other actors in that they:

    • Do not work with onDone
    • Do not produce a snapshot using .getSnapshot()
    • Do not emit values when used with .subscribe()
    • Can not be stopped with .stop()
    @see
    • InvokeCallback for more information about the callback function and its object argument
    • docs for more information about how input is passed
    @example
    const callbackLogic = fromCallback(({ sendBack, receive }) => {
    let lockStatus = 'unlocked';

    const handler = (event) => {
    if (lockStatus === 'locked') {
    return;
    }
    sendBack(event);
    };

    receive((event) => {
    if (event.type === 'lock') {
    lockStatus = 'locked';
    } else if (event.type === 'unlock') {
    lockStatus = 'unlocked';
    }
    });

    document.body.addEventListener('click', handler);

    return () => {
    document.body.removeEventListener('click', handler);
    };
    });

    Type parameters

    Parameters

    • invokeCallback: InvokeCallback<TEvent, AnyEventObject, TInput>

      The callback function used to describe the callback logic The callback function is passed an object with the following properties:

      • receive - A function that can send events back to the parent actor; the listener is then called whenever events are received by the callback actor
      • sendBack - A function that can send events back to the parent actor
      • input - Data that was provided to the callback actor
      • self - The parent actor of the callback actor
      • system - The actor system to which the callback actor belongs The callback function can (optionally) return a cleanup function, which is called when the actor is stopped.

    Returns CallbackActorLogic<TEvent, TInput>

    Callback logic