安装 axios-retry
- 网络异常请求重试处理
- 断网 弱网
- validateStatus 与 retryCondition 包含关系
安装 axios-retry
npm install axios-retry
复制代码
const whiteRetry = new Set(['ECONNABORTED', undefined]);
axiosRetry(instance, {
retries: 2, // 重复请求次数
shouldResetTimeout: true, // 重置超时时间
retryDelay: (retryCount) => {
return retryCount * 10000; // 重复请求延迟,每次请求之间间隔10s
},
retryCondition: (err) => {
// true为打开自动发送请求,false为关闭自动发送请求
const {code, message} = err;
return whiteRetry.has(<string>code) || message.includes('timeout'); // code 200 -500 范围之外的才走重试流程
},
});
复制代码
validateStatus 与 retryCondition 包含关系
❗❗❗ code
200 - 500
范围之外的才走重试流程
const instance = axios.create({
baseURL,
timeout: 5 * 1000,
headers: {
'Content-Type': 'application/json;charset=utf-8',
},
validateStatus(status) {
return status >= 200 && status < 500; // code 200 - 500 范围之外的才走重试流程
},
});