UNPKG

synapse-storage

Version:

Набор инструментов для управления состоянием и апи-запросами

25 lines (16 loc) 998 B
import { of } from "rxjs"; import { concatAll, delay, mergeMap, toArray } from "rxjs/operators"; import { chunk } from "../../../_utils/index.js"; /** * Разбиение запроса на порции * Отправляется ПОСЛЕДОВАТЕЛЬНО n-запросов и дожидается ответа от каждого * @param fn - функция в которую передается chunk и возвращается функция api * @param arr - массив который нужно поделить * @param size - размер порции * @param delayMs - задержка между запросами в миллисекундах */ const chunkRequestConsistent = (fn, arr, size, delayMs = 0)=>{ const chunks = chunk(arr, size).map((chunkItem)=>of(chunkItem).pipe(delay(delayMs), mergeMap(fn))); return of(...chunks).pipe(concatAll(), toArray()); }; export { chunkRequestConsistent }; //# sourceMappingURL=chunkRequestConsistent.js.map