Skip to content

debounce

debounce<T>(func, wait?): (...args: Parameters<T>) => void

防抖函数

创建一个防抖函数,延迟调用函数直到上次调用后的指定时间已经过去

Type parameters

NameType
Textends (...args: unknown[]) => unknown

Parameters

NameTypeDefault valueDescription
funcTundefined要防抖的函数
waitnumber200延迟的毫秒数,默认为 200ms

Returns

fn

防抖后的函数,带有 cancel 方法可以取消延迟的函数调用

(...args): void

Parameters
NameType
...argsParameters<T>
Returns

void

NameType
cancel() => void

Example

ts
// 基本用法
const debouncedSearch = debounce((query) => {
  console.log('Searching for:', query);
}, 300);

// 快速连续调用只会执行一次
debouncedSearch('a');
debouncedSearch('ap');
debouncedSearch('app'); // 只有这次会在 300ms 后执行

// 取消待执行的调用
debouncedSearch.cancel();

Released under the MIT License.