Код Middle Компоненты и стили спрашивают часто обновлено
Дебаунс поиска при вводе
Условие
Поле поиска вызывает API на каждый символ. Напишите debounce(fn, ms): возвращает функцию, которая откладывает вызов fn на ms миллисекунд после последнего вызова, передавая последние аргументы. У возвращаемой функции есть метод cancel(), отменяющий отложенный вызов (его зовут при размонтировании экрана).
Что проверяют тесты
один вызов через ms
серия вызовов даёт один с последними аргументами
таймер сбрасывается каждым вызовом
паузы дают отдельные вызовы
cancel отменяет отложенный вызов
после cancel функция снова работает
передаются все аргументы
Как подойти
Подсказки: 2
- Храните id таймера в замыкании и вызывайте
clearTimeoutперед новымsetTimeout. cancelможно повесить как свойство функции.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.