Что делает метод merge в Observable

«Что делает метод merge в Observable» — вопрос из категории Реактивное программирование, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Метод merge объединяет несколько Observable в один, эмитируя элементы из всех источников в порядке их поступления. Подходит для параллельной обработки потоков без сохранения порядка.

Пример:

val observable1 = Observable.just(1, 2, 3)
val observable2 = Observable.just(4, 5, 6)

Observable.merge(observable1, observable2)
    .subscribe { println(it) } // Может вывести: 1,4,2,5,3,6 (порядок не гарантирован)

Особенности:

  • Не гарантирует порядок эмиттов
  • Завершается, когда все источники завершены
  • Если любой источник выбросит ошибку, merge прекратит работу