debounce
debounce<T>(func, wait?): (...args: Parameters<T>) => void
防抖函数
创建一个防抖函数,延迟调用函数直到上次调用后的指定时间已经过去
Type parameters
| Name | Type |
|---|---|
T | extends (...args: unknown[]) => unknown |
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
func | T | undefined | 要防抖的函数 |
wait | number | 200 | 延迟的毫秒数,默认为 200ms |
Returns
fn
防抖后的函数,带有 cancel 方法可以取消延迟的函数调用
(...args): void
Parameters
| Name | Type |
|---|---|
...args | Parameters<T> |
Returns
void
| Name | Type |
|---|---|
cancel | () => void |
Example
ts
// 基本用法
const debouncedSearch = debounce((query) => {
console.log('Searching for:', query);
}, 300);
// 快速连续调用只会执行一次
debouncedSearch('a');
debouncedSearch('ap');
debouncedSearch('app'); // 只有这次会在 300ms 后执行
// 取消待执行的调用
debouncedSearch.cancel();