flatMap()
разделяет rx-стрим на несколько промежуточных стримов, назовем их [A, B, C]
, и затем соединяет результат в один стрим. Элементы промежуточных стримов передаются напрямую в конечный стрим без гарантии сохранения порядка, в котором созданы A
, B
и C
. Конечный результат может быть таким: [C1, A1, A2, B1, C2, A3, B2, B3, C3]
.concatMap()
работает похожим на flatMap()
образом, но сохраняет порядок промежуточных стримов. Результат будет: [A1, A2, A3, B1, B2, B3, C1, C2, C3]
.switchMap()
похож на flatMap()
и также как concatMap()
сохраняет порядок. Но при использовании switchMap()
каждый предыдущий промежуточный стрим останавливается в тот момент, когда стартует следующий. Результат может выглядеть так: [A1, A2, B1 C1, C2, C3]
.Подробнее