场景
有时候网络问题波动等会发生超时或者504异常,但是重新再调用一次就可以了,这时候可以想到如果出现这种情况是否可以自动再进行接口调用并且最多次数不超过3此?
解决方案
可以利用 Axios 插件进行重试失败的请求
import axiosRetry from 'axios-retry';
axiosRetry(axios, {//传入axios实例
retries: 3, // 设置自动发送请求次数
retryDelay: (retryCount) => {
return retryCount * 1000; // 重复请求延迟(毫秒)
},
shouldResetTimeout: true, // 重置超时时间
retryCondition: (error) => {
console.log(error,333);
//true为打开自动发送请求,false为关闭自动发送请求
if (error.message.includes('timeout') || error.message.includes("504") || error.message.includes('Error')) {
return true;
} else {
return false;
}
}
})
引入axios-retry,然后根据响应参数设置就可以了,具体参数除了上面示例代码以外,可以参考axios-retry|axios中文网 | axios