@pmun/utils / debounce
Function: debounce()
ts
function debounce<T, R>(fn, wait): (...args) => Promise<R>;创建一个防抖函数(异步版本)
在指定的延迟时间内,如果函数被多次调用,只执行最后一次。 返回一个 Promise,会在函数实际执行后 resolve。
Type Parameters
T
T extends any[]
R
R
Parameters
fn
(...args) => R | Promise<R>
要防抖的函数
wait
number
延迟时间(毫秒)
Returns
防抖后的函数
ts
(...args): Promise<R>;Parameters
args
...T
Returns
Promise<R>
Example
ts
const searchAPI = debounce(async (query: string) => {
const response = await fetch(`/api/search?q=${query}`)
return response.json()
}, 300)
// 只有最后一次调用会实际执行
searchAPI('a')
searchAPI('ab')
const result = await searchAPI('abc') // 只有这次会执行