Skip to content

@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 }) // 只有第一次和最后一次会执行