Skip to content

fromPromise

Callable

  • fromPromise<TOutput, TInput>(promiseCreator: (__namedParameters: { input: TInput; self: ActorRef<PromiseSnapshot<TOutput, unknown>, { type: string }>; system: AnyActorSystem }) => PromiseLike<TOutput>): PromiseActorLogic<TOutput, TInput>

  • An actor logic creator which returns promise logic as defined by an async process that resolves or rejects after some time.

    Actors created from promise actor logic (“promise actors”) can:

    • Emit the resolved value of the promise
    • Output the resolved value of the promise

    Sending events to promise actors will have no effect.

    @see

    docs for more information about how input is passed

    @example
    const promiseLogic = fromPromise(async () => {
    const result = await fetch('https://example.com/...')
    .then((data) => data.json());

    return result;
    });

    const promiseActor = createActor(promiseLogic);
    promiseActor.subscribe((snapshot) => {
    console.log(snapshot);
    });
    promiseActor.start();
    // => {
    // output: undefined,
    // status: 'active'
    // ...
    // }

    // After promise resolves
    // => {
    // output: { ... },
    // status: 'done',
    // ...
    // }

    Type parameters

    Parameters

    • promiseCreator: (__namedParameters: { input: TInput; self: ActorRef<PromiseSnapshot<TOutput, unknown>, { type: string }>; system: AnyActorSystem }) => PromiseLike<TOutput>

      A function which returns a Promise, and accepts an object with the following properties:

      • input - Data that was provided to the promise actor
      • self - The parent actor of the promise actor
      • system - The actor system to which the promise actor belongs

    Returns PromiseActorLogic<TOutput, TInput>