Реализуйте функцию debounce(fn, ms), которая возвращает «debounced»-версию fn.
Debounced-функция откладывает вызов fn на ms миллисекунд после последнего вызова. Если за это время происходит ещё один вызов, таймер сбрасывается.
const log = debounce(console.log, 300);
log('a'); // таймер 300ms
log('b'); // сброс, таймер 300ms
// через 300ms: console.log('b')
debounce(fn, 300)
Вызывает fn через 300ms после последнего вызова