DOM и React Senior DOM на практике обновлено
Живой поиск с отменой
Условие
attachSearch(input, search, render, wait): по вводу с задержкой wait вызывает search(query) и передаёт результат в render. Ответы на устаревшие запросы игнорируются. Верни функцию отписки.
Что проверяют тесты
схлопывает ввод в один запрос
медленный старый ответ не перетирает новый
отписка снимает всё
Как подойти
Две независимые проблемы, которые путают: debounce уменьшает количество запросов, счётчик последовательности защищает от прихода ответов не по порядку. Нужны обе - быстрый третий запрос легко обгонит первый. Промышленная версия добавляет AbortController, чтобы не тратить сеть на отменённое.
Подсказки: 3
- Задержка решает задачу лишних запросов, но не задачу порядка ответов.
- Нумеруй запросы и применяй только последний.
- Отписка должна снимать и слушатель, и висящий таймер.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.