batched-promise
Version:
An extension for Promise with support for running asynchronous functions in batches/chunks.
8 lines (7 loc) • 779 B
TypeScript
export declare type BatchedPromiseCallbackFn<T extends (...args: any[]) => Promise<Awaited<ReturnType<T>>>> = (currentBatch: PromiseSettledResult<Awaited<ReturnType<T>>>[], index: number, currentResult: PromiseSettledResult<Awaited<ReturnType<T>>>[]) => void | Promise<void>;
interface BatchedPromise {
all: <T extends (...args: any[]) => Promise<Awaited<ReturnType<T>>>>(values: T[], batchSize?: number, callback?: BatchedPromiseCallbackFn<T>) => Promise<Awaited<ReturnType<T>>[]>;
allSettled: <T extends (...args: any[]) => Promise<Awaited<ReturnType<T>>>>(values: T[], batchSize?: number, callback?: BatchedPromiseCallbackFn<T>) => Promise<PromiseSettledResult<Awaited<ReturnType<T>>>[]>;
}
declare const BatchedPromise: BatchedPromise;
export default BatchedPromise;