Разница между операторами concat и concatMap в реактивном программировании заключается в следующем:
- concat принимает список наблюдаемых и подписывается к ним один за другим, когда завершается предыдущее наблюдаемое. 1
- concatMap принимает в качестве параметра функцию, которая вызывается для каждого элемента из источника и возвращает внутреннее наблюдаемое (она сопоставляет каждый элемент из источника с наблюдаемым). 1 Затем concatMap вызывает обратный вызов только после завершения предыдущего внутреннего наблюдаемого. 1
Таким образом, concat просто принимает список наблюдаемых и подписывается к ним один за другим, а concatMap гарантирует, что каждая последовательность, созданная лямбдой, завершится до подписки к следующей. 2