Как реализовать функцию debounce?

Junior
346 просмотров
AFK Offer AI

function debounce(fn, delay) { let timer; return function(...args) { clearTimeout(timer); timer = setTimeout(() => fn.apply(this, args), delay); }; }. Каждый вызов сбрасывает таймер. Функция выполнится только через delay мс после последнего вызова. Для поиска: const search = debounce((query) => fetch("/api?q=" + query), 300). Продвинутая версия: leading опция (вызов на первом нажатии), cancel метод, flush для немедленного выполнения. Важно сохранять this контекст через apply.

Следующий вопрос

Почему Tailwind стал таким популярным?