函数: debounce()
ts
function debounce<T>(
fn,
wait?,
immediate?): {
(this, ...args): void;
cancel: void;
};定义于: common.ts:61
防抖:在最后一次触发后等待 wait 毫秒才执行,高频连续触发只生效最后一次。
常用于输入联想、窗口 resize 等「停止操作后再响应」的场景。
类型参数
| 类型参数 |
|---|
T extends (...args) => any |
参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
fn | T | undefined | 需要防抖的原函数 |
wait | number | 300 | 等待毫秒数,默认 300 |
immediate | boolean | false | 是否在首次触发时立即执行一次,默认 false |
返回值
包装后的函数;其 this 与参数会透传给 fn
{ (this, ...args): void; cancel: void; }
cancel()
ts
cancel(): void;返回值
void
备注
返回值附带 cancel() 方法,可取消尚未执行的挂起调用。
示例
ts
const onInput = debounce(() => search(), 500)
onInput()
onInput.cancel() // => 取消这次尚未执行的调用参见
throttle 同样用于控制高频调用,但按固定间隔限流