Sobes.tech
Back to tasks
Intern — Middle
72

Функция debounce для отложенного вызова

Companies where asked:
КодтехКодтех

Task condition

livecode

Необходимо создать функцию debounce, принимающую на вход целевую функцию fn и длительность задержки timeout (в миллисекундах). Функция должна возвращать новую обёртку, которая будет вызывать fn только после того, как с момента последнего обращения к ней пройдет указанный интервал. Если обёртка вызывается повторно до истечения тайм‑аута, текущий таймер отменяется и запускается заново.

function debounce(fn, timeout) {
    // Реализация
}

const fn = debounce(() => console.log('fn'), 300);
fn();
fn();
fn();
// Ожидаемый вывод: 'fn' (один раз через 300 мс после последнего вызова)