retry-axios:自动重试Axios请求的终极解决方案
安装指南
要开始使用retry-axios库,您只需执行以下命令来通过npm安装它:
npm install retry-axios
此操作会将retry-axios及其依赖项添加到您的项目中。
项目使用说明
基础集成
在您的JavaScript或TypeScript项目中,首先需要导入retry-axios和axios库。对于传统的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),仅供参考



