Skip to content

debounceWithCancel

创建可取消的防抖函数:延迟窗口内只执行最后一次调用,并支持 cancel() 取消待执行调用。

前置依赖

依赖参数

参数名类型说明
deps.setTimeouttypeof setTimeout延迟调度
deps.clearTimeouttypeof clearTimeout清除定时器

函数签名

typescript
function debounceWithCancel<T extends (...args: never[]) => void>(
  fn: T,
  ms: number,
  deps: DebounceWithCancelDeps,
): DebouncedWithCancel<T>

参数

参数名类型必填说明
fnT原函数
msnumber防抖延迟(毫秒)
depsDebounceWithCancelDeps定时器依赖

返回值

类型说明
DebouncedWithCancel<T>防抖函数,附带 cancel() 方法

工作原理

  1. 每次调用重置定时器。
  2. 定时器到期后执行原函数。
  3. 调用 cancel() 可清除未执行的调度。