ReferencemergeMap
Reference · 22
mergeMap
mergeMap
Запускает внутренние потоки параллельно.
Сигнатура
mergeMap(project, concurrent?: number): OperatorFunction
Маркеры
outer: --a---b---|
inner(a): --1-2-3|
inner(b): --1-2-3|
result: --1-2-1-3-2-3-|
Что делает
На каждое значение запускает новый внутренний Observable, ничего не отменяя. Все активные inner-стримы живут параллельно (по умолчанию без лимита). Параметр concurrent ограничивает число одновременных подписок — лишние ждут очереди.
Когда использовать
Параллельные HTTP-запросы (например, загрузка списка превью), обработка событий, для которых порядок и отмена не важны. mergeMap(fn, 3) — стандартный паттерн пула загрузок.
Подводный камень
Без concurrent на потоке кликов получите столько одновременных запросов, сколько кликов. Для critical-операций предпочтительнее exhaustMap.
См. также
switchMap, concatMap, forkJoin
script.ts
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...