Какие функции имеет Observable

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

Ответ

Observable — это основа реактивного программирования в RxJava. Основные функции:

  1. Созданиеjust(), fromIterable(), create(), interval()
    Observable.just("Hello")  
    Observable.fromIterable(listOf(1, 2, 3))
  1. Операторы преобразованияmap(), flatMap(), filter()
    Observable.range(1, 5)
        .map { it * 2 }
        .filter { it > 5 }
  1. Комбинированиеmerge(), concat(), zip()
    Observable.zip(obs1, obs2) { a, b -> a + b }
  1. Управление потокамиsubscribeOn(), observeOn()
    observable.subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
  1. Обработка ошибокonErrorReturn(), retry()

  2. Подпискаsubscribe() с обработкой onNext, onError, onComplete

Observable работает по принципу push-модели: данные отправляются подписчику при появлении.