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