BACK
ReferenceconcatMap
Reference · 23

concatMap

concatMap

rxjs.dev

Запускает внутренние потоки последовательно, ждёт complete предыдущего.

Сигнатура

concatMap(project): OperatorFunction

Маркеры

outer:    --a---b---|
inner(a): --1-2-3|
result:   --1-2-3-----1-2-3-|

Что делает

Эквивалент mergeMap(fn, 1): следующий inner запускается только после complete предыдущего. Гарантирует строгий порядок эмитов на выходе.

Когда использовать

Запись в БД с сохранением порядка, очередь действий пользователя, миграции, шаги визарда. Всегда, когда порядок важнее скорости.

Подводный камень

Если предыдущий inner никогда не завершится — последующие никогда не запустятся. Бесконечные источники (interval без take) ломают логику.

См. также

mergeMap, switchMap, concat

script.ts // TypeScript
CONSOLE · Console Output
Нажмите на запуск, чтобы увидеть результат...