Ответ
switchMap
— оператор в RxJava, который преобразует элементы потока в новые Observable, но отменя предыдущие подписки при поступлении новых элементов.
Применение:
- Часто используется для обработки последовательных запросов (например, поиск с отменой предыдущего запроса).
- Гарантирует, что активен только последний Observable.
Пример:
searchInputObservable
.switchMap { query ->
api.search(query) // Отменяет предыдущий запрос при новом вводе
}
.subscribe { results ->
updateUI(results)
}
Отличие от других операторов:
concatMap
— сохраняет порядок запросов.flatMap
— выполняет все запросы параллельно.switchMap
— оставляет только последний.