Как реализовать поиск по valueChanges поля ввода с запросом на backend: какие RxJS-операторы использовать и почему?

Типичная цепочка: нормализация, debounceTime, distinctUntilChanged и switchMap к HTTP-запросу; catchError размещают внутри запроса, чтобы поиск продолжался после ошибки.

Короткий ответ

Что ответить на собеседовании

Типичная цепочка: нормализация, debounceTime, distinctUntilChanged и switchMap к HTTP-запросу; catchError размещают внутри запроса, чтобы поиск продолжался после ошибки.

Подробный разбор

Ответ с пояснениями

Типичная цепочка: нормализация, debounceTime, distinctUntilChanged и switchMap к HTTP-запросу; catchError размещают внутри запроса, чтобы поиск продолжался после ошибки.

Пустую строку обрабатывайте явно, возвращая пустой результат или дефолтный список, а не просто отбрасывая её filter. SwitchMap отписывает прежний inner Observable при новом значении; HTTP-клиент должен поддерживать отмену. Для немедленной отмены уже при вводе, до debounce, перестройте границу switchMap или дополнительно проверяйте актуальность запроса. Подписку очищают по lifecycle.

Источник: rxjs.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее