Всем доброго вечера, помогите, пожалуйста, с функцией debounce
Делаю так:
const debounce = (fn, debounceTime) => {
let timeout;
return function() {
clearTimeout( timeout );
timeout = setTimeout( fn, debounceTime );
}
}
Проходит первый тест:
✓ должна блокировать вызовы функции в течение времени задержки,
пока функция вызывается снова ранее, чем прошло время задержки (7ms)
✕ должна передать контекст вызова и аргументы debounced-функции в оригинальную функцию (5ms)
Делаю так:
const debounce = (fn, debounceTime) => {
let count = -Infinity;
let res;
return function() {
const end = Date.now();
if (end - count >= debounceTime) {
count = end;
res = fn.apply(this, arguments);
}
return res;
};
}
Проходит второй тест:
✕ должна блокировать вызовы функции в течение времени задержки,
пока функция вызывается снова ранее, чем прошло время задержки (6ms)
✓ должна передать контекст вызова и аргументы debounced-функции в оригинальную функцию (3ms)
Как объеденить?