Выбор ответа Middle Flow, StateFlow и SharedFlow спрашивают часто обновлено

flatMapLatest для поиска

Вопрос

Почему для поиска по мере ввода обычно используют flatMapLatest?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Новый запрос отменяет предыдущий поиск. flatMapLatest на каждое новое значение запускает новый внутренний поток и отменяет предыдущий.

Варианты ответа

  1. Он объединяет результаты всех запросов в один поток
  2. Он выполняет запросы строго по очереди, без гонок
  3. Он кеширует результаты одинаковых запросов
  4. Новый запрос отменяет предыдущий поискправильный ответ

Разбор

flatMapLatest на каждое новое значение запускает новый внутренний поток и отменяет предыдущий. Если пользователь напечатал «ко», а потом «кот», запрос «ко» отменится, и его ответ не перетрёт свежий. flatMapMerge объединял бы все, flatMapConcat шёл бы по очереди. Кеширования ни один из них не делает.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.