UNPKG

nestjs-appwrite

Version:

Easier Appwrite integration for your NestJS application.

25 lines (21 loc) 760 B
export const executePromisesLimited = async <T>(iterable: Iterable<any | PromiseLike<any>>, concurrencyLimit: number): Promise<T[]> => { const iterator = iterable[Symbol.iterator](); let isDone = false; let promises: PromiseLike<any>[] = []; const result: any[] = []; while (!isDone) { const { value, done } = iterator.next(); isDone = Boolean(done); promises.push(value); if (promises.length >= concurrencyLimit) { const promiseResults = await Promise.all(promises.map(promise => promise)); result.push(...promiseResults); promises = []; } } if (promises.length) { const promiseResults = await Promise.all(promises.map(promise => promise)); result.push(...promiseResults); } return result; }