UNPKG

vue3.0-infinite-scroll

Version:
34 lines (29 loc) 631 B
type Time = number; export const throttle = function (fn: any, delay: Time, context: any) { let now: Time = 0; let lastExec: Time = 0; let timer: any = null; const execute = () => { fn(context); lastExec = now; }; return () => { now = Date.now(); if (timer) { clearTimeout(timer); timer = null; } if (lastExec) { const diff = delay - (now - lastExec); if (diff < 0) { execute(); } else { timer = setTimeout(function () { execute(); }, diff); } } else { execute(); } }; };