Что такое оператор switchMap в RxJava

Ответ

switchMap — оператор в RxJava, который преобразует элементы потока в новые Observable, но отменя предыдущие подписки при поступлении новых элементов.

Применение:

  • Часто используется для обработки последовательных запросов (например, поиск с отменой предыдущего запроса).
  • Гарантирует, что активен только последний Observable.

Пример:

searchInputObservable
    .switchMap { query -> 
        api.search(query) // Отменяет предыдущий запрос при новом вводе
    }
    .subscribe { results -> 
        updateUI(results) 
    }

Отличие от других операторов:

  • concatMap — сохраняет порядок запросов.
  • flatMap — выполняет все запросы параллельно.
  • switchMap — оставляет только последний.