Ответ
Да, работал. В Kotlin Flow можно использовать операторы zip для комбинирования двух потоков. Он ждет элементы из обоих Flow, затем применяет функцию преобразования.
Пример:
val flow1 = flowOf(1, 2, 3)
val flow2 = flowOf("A", "B", "C")
flow1.zip(flow2) { num, char -> "$num$char" }
.collect { println(it) } // 1A, 2B, 3C
Нюансы:
- Если один Flow завершится раньше,
zipтоже завершится. - Элементы комбинируются строго попарно в порядке эмиссии.
- Работает только с двумя Flow. Для большего числа используйте
combine.