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