错误重试

通过设置 options.retryCount,指定错误重试次数,则 useRequest 在失败后会进行重试。

const { data, run } = useRequest(getUsername, {
  retryCount: 3,
});

如上示例代码,在请求异常后,会做 3 次重试。


data:
点击查看代码
<script setup>
import { mockFetchError } from "@/api";
import { useRequest } from "ahooks-for-vue";
import { ref } from "vue";

const retryCount = ref(100);
const retryInterval = ref(2000);
const { loading, data, run } = useRequest(mockFetchError, {
  retryCount,
  retryInterval,
});
</script>
<template>
  <div>
    <button type="button" @click="run">run</button>

    <button type="button" @click="() => (retryCount = 100)">
      set retryCount
    </button>
    <button type="button" @click="() => (retryInterval = -1)">
      set retryInterval
    </button>
    <br />
    data:{{ loading ? "loading..." : data }}
  </div>
</template>
<style></style>

API

Options

参数说明类型默认值
retryCount错误重试次数。如果设置为 -1,则无限次重试。Ref<number> number-
retryInterval
  • 重试时间间隔,单位为毫秒。
  • 如果不设置,默认采用简易的指数退避算法,取 1000 * 2 ** retryCount,也就是第一次重试等待 2s,第二次重试等待 4s,以此类推,如果大于 30s,则取 30s
Ref<number> number-

备注

  • options.retryCountoptions.retryInterval 支持动态变化。
  • cancel 可以取消正在进行的重试行为。
Last Updated:
Contributors: 郑磊