Skip to content

函数: debounce()

ts
function debounce<T>(
   fn, 
   wait?, 
   immediate?): {
(this, ...args): void;
  cancel: void;
};

定义于: common.ts:61

防抖:在最后一次触发后等待 wait 毫秒才执行,高频连续触发只生效最后一次。

常用于输入联想、窗口 resize 等「停止操作后再响应」的场景。

类型参数

类型参数
T extends (...args) => any

参数

参数类型默认值描述
fnTundefined需要防抖的原函数
waitnumber300等待毫秒数,默认 300
immediatebooleanfalse是否在首次触发时立即执行一次,默认 false

返回值

包装后的函数;其 this 与参数会透传给 fn

{ (this, ...args): void; cancel: void; }

cancel()

ts
cancel(): void;

返回值

void

备注

返回值附带 cancel() 方法,可取消尚未执行的挂起调用。

示例

ts
const onInput = debounce(() => search(), 500)
onInput()
onInput.cancel() // => 取消这次尚未执行的调用

参见

throttle 同样用于控制高频调用,但按固定间隔限流