Skip to content

useThrottleFn

节流函数,固定时间间隔执行,适用于 resize、scroll 等高频事件。


函数签名

ts
function useThrottleFn<T extends FunctionArgs>(
  fn: T,
  ms?: MaybeRefOrGetter<number>,
  trailing?: boolean,
  leading?: boolean,
  rejectOnCancel?: boolean,
): PromisifyFn<T>

基础用法

参数

参数说明类型默认值
fn需要节流的函数T extends FunctionArgs
ms间隔时间(毫秒)MaybeRefOrGetter<number>200
trailing结束后是否再执行一次booleanfalse
leading开始时是否立即执行booleantrue
rejectOnCancel取消时是否 reject Promisebooleanfalse

返回值

返回节流包装后的函数 PromisifyFn<T>,调用方式与原函数一致。

代码示例

ts
import { useThrottleFn } from 'ljf-hooks'

const throttledFn = useThrottleFn(() => {
  // 节流逻辑
}, 1000)

window.addEventListener('resize', throttledFn)