Как очищать таймер поиска перед новым вводом
Поиск отправляет запрос на каждую букву. Небольшая задержка позволяет дождаться паузы в наборе. Для этого предыдущий таймер нужно отменять.
let timer;
input.addEventListener("input", function() {
clearTimeout(timer);
const query = input.value.trim();
timer = setTimeout(function() {
if (query.length >= 2) search(query);
}, 300);
});
input здесь — поле поиска, search — ваша функция запроса. Задержка не защищает от перестановки ответов: старый запрос может завершиться позже нового. Отдельно проверяйте актуальность результата по номеру запроса. При очистке поля сразу уберите старую выдачу. Проверьте быстрый набор и вставку готовой фразы.