useRetryFn

这个 Hook 自 v1.4.0 版本起可用。

一个 React Hook,用于帮助实现带有重试机制的函数运行。

演示

源码

用法

请查看 API。

源码

点击下方链接跳转 GitHub 查看源代码。

API

const fnWithRetry = useRetryFn(fn, options)

函数 Fn

将使用重试机制调用的函数。

选项 Options

export interface UseRetryFnOptions<E = unknown> {
  /**
   * 重试次数。
   *
   * @defaultValue 3
   */
  count?: number
  /**
   * 重试间隔。ms
   *
   * @defaultValue defaultRetryInterval
   */
  interval?: number | ((currentCount: number) => number)
  /**
   * 错误回调。
   *
   * @defaultValue undefined
   */
  onError?: (error: E | undefined) => void
  /**
   * 错误重试回调。
   *
   * @defaultValue undefined
   */
  onErrorRetry?: (error: E | undefined, state: UseRetryFnRetryState) => void
  /**
   * 所有重试失败的回调。
   *
   * @defaultValue undefined
   */
  onRetryFailed?: (error: E | undefined, state: UseRetryFnRetryState) => void
}

返回值

一个带有重试机制、与传入函数签名相同的函数,带有额外的 cancel 方法。

export function useRetryFn<T extends AnyFunc, E = any>(
  fn: T,
  options: UseRetryFnOptions<E> = {},
): T & { cancel: () => void }