From bce718ba100d0012f7488a4737e4c500f3a9614a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E4=BA=9A=E6=98=95?= <1549469775@qq.com> Date: Thu, 23 Jan 2025 17:23:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0debounce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/debounce/index.ts | 12 ++++++++++++ packages/core/src/index.ts | 1 + 2 files changed, 13 insertions(+) create mode 100644 packages/core/src/debounce/index.ts diff --git a/packages/core/src/debounce/index.ts b/packages/core/src/debounce/index.ts new file mode 100644 index 0000000..ac72091 --- /dev/null +++ b/packages/core/src/debounce/index.ts @@ -0,0 +1,12 @@ +export function debounce(fn: (...argu: T) => R, duration: number = 1500) { + let timer: ReturnType | void; + return function f(this: void, ...argu: T) { + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { + timer = undefined; + fn.apply(this, argu); + }, duration); + }; +} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 8a22d87..f183ae9 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -1 +1,2 @@ export * from "./date"; +export * from "./debounce";