• Async RAII pattern: acquire a ref, await fn, auto-release.

    Type Parameters

    • T

      The service type.

    • R

      The return type of fn.

    Parameters

    • ctx: SynapseContext

      The context to acquire from.

    • token: ServiceToken<T>

      The service token.

    • fn: ((service: T) => Promise<R>)

      Async function that receives the unwrapped service.

        • (service): Promise<R>
        • Parameters

          • service: T

          Returns Promise<R>

    Returns Promise<R>

    The return value of fn.

    1.2.0

    const balance = await withRefAsync(ctx, Tokens.RPC, async rpc => {
    return rpc.getBalance(pubkey);
    });
    // ref is auto-released after await