"mergeMap: Секрет управления параллелизмом в RxJS"

Вы знаете mergeMap
, concatMap
, exhaustMap
и switchMap
— но знали ли вы, что только один из них принимает второй аргумент?
👉 mergeMap
уникален благодаря параметру concurrent
, который ограничивает параллельные подписки. Это как "регулятор скорости" для ваших Observable.
_____
Пример использования (контролируемая загрузка файлов):
Представьте, что вам нужно:
1️⃣ Обработать несколько файлов
2️⃣ Избежать перегрузки браузера/API
3️⃣ Сохранить порядок загрузки
В этом случае второй аргумент mergeMap становится незаменимым:
from(fileList).pipe(
mergeMap(
file => uploadFile(file), // функция загрузки
3 // одновременно только 3 файла
)
).subscribe();
_____
Преимущества mergeMap с concurrent:
✅ Предотвращает перегрузку API
✅ Оптимизирует нагрузку на сеть
✅ Сохраняет отзывчивость интерфейса
_____
Знали ли об этой возможности? 😉
Больше об Angular в телеграмм-канале