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