vite-uni-dev-tool
Version:
vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试
47 lines (46 loc) • 1.63 kB
JavaScript
function C(c, s, a = {}) {
let l = null, n = null, e = null, r, u = null;
const { leading: m = !0, trailing: f = !0 } = a, i = (t) => {
const o = n, T = e;
return n = e = null, u = t, r = c.apply(T, o), r;
}, g = (t) => (u = t, l = null, m ? i(t) : void 0), v = (t) => (l = null, n && f ? i(t) : (n = e = null, r)), y = (t) => {
if (u === null)
return s;
const o = t - u;
return s - o;
}, d = (t) => {
if (u === null)
return !0;
const o = t - u;
return o >= s || o < 0;
}, h = () => {
const t = Date.now();
if (d(t))
return v(t);
l = setTimeout(h, y(t));
}, p = function(...t) {
const o = Date.now(), T = d(o);
return n = t, e = this, T && l === null ? g(o) : (l === null && (l = setTimeout(h, s)), r);
};
return p.cancel = () => {
l !== null && clearTimeout(l), u = null, l = n = e = null;
}, p;
}
function D(c, s, a = !1) {
let l = null, n = null, e = null, r, u = null;
const m = () => {
const i = u !== null ? Date.now() - u : 0;
i < s && i >= 0 ? l = setTimeout(m, s - i) : (l = null, a || n !== null && e !== null && (r = c.apply(e, n), n = e = null));
}, f = function(...i) {
n = i, e = this, u = Date.now();
const g = a && l === null;
return l || (l = setTimeout(m, s)), g && (r = c.apply(this, i), n = e = null), r;
};
return f.cancel = () => {
l !== null && (clearTimeout(l), l = null, n = e = null, u = null);
}, f.flush = () => (l !== null && (clearTimeout(l), l = null, a || n !== null && e !== null && (r = c.apply(e, n), n = e = null)), r), f;
}
export {
D as debounce,
C as throttle
};