Задача

Реализуйте debounce(fn, delay) — обёртку, которая откладывает вызов fn до тех пор, пока между вызовами не пройдёт пауза в delay миллисекунд. Каждый новый вызов сбрасывает таймер.

Пример

const log = debounce((text) => console.log(text), 100);
 
log('a');
log('ab');
log('abc'); // только этот выполнится через 100мс после последнего вызова
// -> abc

Решение

См. также