function debounce(func, wait) {
let timer;
return function (){
let context = this;
if (timer) {
clearTimeout(timer);
timer = null;
};
timer = setTimeout(function(){
func.apply(context, arguments);
clearTimeout(timer);
timer = null;
}, wait);
}
}
let n = 0;
function test() {
n++;
console.log(n);
}
let count = 0;
const debounceTestFn = debounce(test, 1000);
let timer = setInterval(function(){
debounceTestFn();
count++;
if (count === 10) {
clearInterval(timer);
timer = null;
}
},100)