• Wraps a MaybePromise-yielding coroutine (generator function) into a function that returns MaybePromise. This allows you to use maybeAsync/yield in a similar way to async/await, where yield maybePromise will return awaited / resolved value.

    Type Parameters

    • R = unknown

    • Args extends unknown[] = unknown[]

    Parameters

    • coroutineFn: ((...args) => Generator<unknown, MaybePromise<R>, any>)
        • (...args): Generator<unknown, MaybePromise<R>, any>
        • Parameters

          • Rest ...args: Args

          Returns Generator<unknown, MaybePromise<R>, any>

    • Optional thisArg: unknown

    Returns ((...args) => MaybePromise<R>)

    Example

    const add = maybeAsync(function* (a: number, b: number) {
    const result1: number = yield Promise.resolve(a); // result1 === a
    const result2 = yield b; // result2 === b
    return result + result2;
    });
    const result = await add(1, 2); // result === 3

Generated using TypeDoc