跳到正文
本页内容
异步客户端组件

useThrottleFn

概览

useThrottleFn 会限制回调的执行频率,同时保留最新参数和最近一次已提交的回调。

函数签名

ts
function useThrottleFn<Args extends unknown[], Result>(
  fn: (...args: Args) => Result,
  options: ThrottleFnOptions,
): ThrottledFunction<Args, Result>;

参数

delay 用于定义节流窗口;leadingtrailing 均默认为 trueonError 用于观察回调异常。

返回值

返回与 useDebounceFn 相同的控制对象,包括 runcancelflushpending

行为

内部的 maxWait 等于 delay,因此连续事件流不会让执行时间无限后移。回调失败后会重置节流窗口,在调用可选的 onError 后重新抛出原始错误。

SSR / RSC

服务端渲染不会启动任务;只有客户端代码调用 run 后才会调度定时器。

示例

组合使用

可以与 useEventListener 组合,让事件源保持响应,同时限制下游任务的执行频率。

源码

在 GitHub 查看实现