@pmun/utils / throttle
Function: throttle()
ts
function throttle<T, R>(fn, wait): (...args) => undefined | Promise<R>;创建一个节流函数(异步版本)
在指定的时间间隔内,函数最多只执行一次。 如果在等待期间有新的调用,会在等待结束后立即执行最新的调用。
Type Parameters
T
T extends any[]
R
R
Parameters
fn
(...args) => R | Promise<R>
要节流的函数
wait
number
时间间隔(毫秒)
Returns
节流后的函数
ts
(...args): undefined | Promise<R>;Parameters
args
...T
Returns
undefined | Promise<R>
Example
ts
const saveData = throttle(async (data: any) => {
await fetch('/api/save', {
method: 'POST',
body: JSON.stringify(data)
})
}, 1000)
// 1秒内多次调用,只执行一次
saveData({ value: 1 })
saveData({ value: 2 })
saveData({ value: 3 }) // 只有第一次和最后一次会执行