diff --git a/packages/varlet-ui/src/utils/shared.ts b/packages/varlet-ui/src/utils/shared.ts index 17bc3bb20be..7912f01c314 100644 --- a/packages/varlet-ui/src/utils/shared.ts +++ b/packages/varlet-ui/src/utils/shared.ts @@ -81,10 +81,11 @@ export const removeItem = (arr: Array, item: unknown) => { export const throttle = (method: any, mustRunDelay = 200): (() => void) => { let timer: number - let start: number + let start = 0 return function loop(this: unknown, ...args) { const now = Date.now() + const elapsed = now - start if (!start) { start = now @@ -94,13 +95,13 @@ export const throttle = (method: any, mustRunDelay = 200): (() => void) => { window.clearTimeout(timer) } - if (now - start >= mustRunDelay) { + if (elapsed >= mustRunDelay) { method.apply(this, args) start = now } else { timer = window.setTimeout(() => { loop.apply(this, args) - }, 50) + }, mustRunDelay - elapsed) } } }