retry-axios:自动重试Axios请求的终极解决方案

retry-axios:自动重试Axios请求的终极解决方案

安装指南

要开始使用retry-axios库,您只需执行以下命令来通过npm安装它:

npm install retry-axios

此操作会将retry-axios及其依赖项添加到您的项目中。

项目使用说明

基础集成

在您的JavaScript或TypeScript项目中,首先需要导入retry-axiosaxios库。对于传统的CommonJS环境:

const rax = require('retry-axios');
const axios = require('axios');

而对于使用ES模块的现代环境:

import * as rax from 'retry-axios';
import axios from 'axios';

自动重试配置

一旦导入,您可以轻松地将其附加到全局axios实例以自动处理重试逻辑,默认重试次数为3次:

const interceptorId = rax.attach();
axios.get('https://your-api-endpoint.com')
  .then(response => console.log(response.data))
  .catch(error => console.error(error));

创建带重试配置的axios实例

若希望对特定的axios实例应用重试策略,则可如下操作:

const myAxiosInstance = axios.create();
myAxiosInstance.defaults.raxConfig = { /* 配置详情 */ };
rax.attach(myAxiosInstance);
myAxiosInstance.get('https://specific-api-endpoint.com');

细致配置API

retry-axios提供了丰富的配置选项以满足复杂需求:

  • 重试次数 (retry):指定失败请求的最大重试次数。
  • 无响应重试 (noResponseRetries):网络错误无响应时的重试次数。
  • 初始延时 (retryDelay):首次重试前的等待时间(毫秒)。
  • HTTP方法重试 (httpMethodsToRetry):定义哪些HTTP方法的请求应被重试。
  • 状态码重试 (statusCodesToRetry):列出应该重试的HTTP状态码范围。
  • 回退类型 (backoffType):支持指数、线性或静态延时策略。
  • 重试尝试事件 (onRetryAttempt):在每次重试前触发,可用于自定义日志或其他逻辑。
  • 应重试判断 (shouldRetry):允许自定义重试条件逻辑。

例如,配置指数回退:

axios({
  url: 'https://api.example.com',
  raxConfig: {
    retry: 3,
    backoffType: 'exponential',
    onRetryAttempt: (err) => console.log(`正在尝试第${err.config.raxInfo.retryNumber + 1}次...`),
  },
}).catch(err => console.error(err));

如何工作

retry-axios通过向您选择的axios实例添加拦截器,实现请求失败后的自动重试功能。这给予开发者灵活性,既可以选择axios的版本,也可以在请求管道中组合多个拦截器,以适应不同场景下的需要。

许可证

本项目遵循Apache-2.0许可协议。了解更多细节,请查阅项目中的LICENSE文件。

至此,您已具备全面了解和使用retry-axios的能力,为您的网络请求增加了一层健壮的安全网。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值