Что такое Completable в RxJava

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

Ответ

Completable — это специальный тип в RxJava, который представляет отложенную операцию без возвращаемого значения, но с возможностью уведомления об успехе или ошибке.

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

  • Не излучает элементов, только событие onComplete или onError.
  • Используется для выполнения действий, где результат не нужен (например, запись в БД, отправка логов).

Пример:

Completable.fromAction { 
    // Действие без результата (например, сохранение в SharedPreferences)
    preferences.edit().putBoolean("key", true).apply() 
}.subscribe(
    { Log.d("TAG", "Успешно") },
    { error -> Log.e("TAG", "Ошибка: $error") }
)

Где применяется:

  • Операции, где важен факт завершения, а не данные.
  • Комбинирование с другими RxJava-операторами (andThen, mergeWith).