Выбор ответа Middle Flow, StateFlow и SharedFlow спрашивают часто обновлено
flatMapLatest для поиска
Вопрос
Почему для поиска по мере ввода обычно используют flatMapLatest?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Новый запрос отменяет предыдущий поиск. flatMapLatest на каждое новое значение запускает новый внутренний поток и отменяет предыдущий.
Варианты ответа
- Он объединяет результаты всех запросов в один поток
- Он выполняет запросы строго по очереди, без гонок
- Он кеширует результаты одинаковых запросов
- Новый запрос отменяет предыдущий поискправильный ответ
Разбор
flatMapLatest на каждое новое значение запускает новый внутренний поток и отменяет предыдущий. Если пользователь напечатал «ко», а потом «кот», запрос «ко» отменится, и его ответ не перетрёт свежий. flatMapMerge объединял бы все, flatMapConcat шёл бы по очереди. Кеширования ни один из них не делает.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.