• Preparing search index...
  • The search index is not available
@daiso-tech/core - v0.38.0
  • @daiso-tech/core
  • Async
  • bulkhead

Function bulkhead

  • bulkhead<
        TParameters extends unknown[],
        TReturn,
        TContext extends Partial<Record<string | symbol, unknown>>,
    >(
        settings?: BulkheadSettings<TParameters, TContext>,
    ): AsyncMiddlewareFn<TParameters, TReturn, TContext>
  • The bulkhead middlewares ensures that a given amount of Promiselike | PromiseLike objects run at the same time concurrently and the rest will be queued up. You can provide settings.maxCapacity

    IMPORT_PATH: "@daiso-tech/core/async"

    Type Parameters

    • TParameters extends unknown[]
    • TReturn
    • TContext extends Partial<Record<string | symbol, unknown>>

    Parameters

    • settings: BulkheadSettings<TParameters, TContext> = {}

    Returns AsyncMiddlewareFn<TParameters, TReturn, TContext>

    Throws

    CapacityFullAsyncError

    import { bulkhead } from "@daiso-tech/core/async";
    import { AsyncHooks } from "@daiso-tech/core/utilities";

    const fetchData = new AsyncHooks(async (url: string): Promise<unknown> => {
    const response = await fetch(url);
    const json = await response.json();
    return json;
    }, [
    bulkhead()
    ]);

    // Will run only 25 promises concurrently by default.
    await Promise.all(Array(50).fill("").map(() => fetchData.invoke("URL")));
    • Defined in src/async/middlewares/bulkhead/bulkhead.middleware.ts:109

Settings

Member Visibility
@daiso-tech/core - v0.38.0
  • Loading...

Generated using TypeDoc