export function debounce(fn, wait){ let timer; return function(...args){ if(timer) { clearTimeout(timer); // clear any pre-existing timer } const context = this; // get the current context timer = setTimeout(()=>{ fn.apply(context, args); // call the function if time expires }, wait); } }