使用axios客户端重试5xx错误的方法如下:
npm install axios
const axios = require('axios');
const instance = axios.create({
retry: 3, // 设置重试次数
retryDelay: 1000, // 设置重试延迟时间,单位为毫秒
});
instance.interceptors.response.use(undefined, function axiosRetryInterceptor(err) {
const config = err.config;
// 如果请求失败或者响应状态码为5xx,则进行重试
if (err.response.status >= 500 && err.response.status < 600) {
// 检查重试次数是否已经用完
if (!config || !config.retry) {
return Promise.reject(err);
}
// 增加重试次数
config.retryCount = config.retryCount || 0;
if (config.retryCount >= config.retry) {
return Promise.reject(err);
}
// 增加重试延迟时间
config.retryCount += 1;
const backoff = new Promise(function(resolve) {
setTimeout(function() {
resolve();
}, config.retryDelay || 1);
});
// 重新发送请求
return backoff.then(function() {
return instance(config);
});
}
return Promise.reject(err);
});
instance.get('https://example.com/api')
.then(function(response) {
console.log(response.data);
})
.catch(function(error) {
console.error(error);
});
通过以上步骤,你可以使用axios客户端重试5xx错误。在配置中,你可以自定义重试次数和重试延迟时间。当请求失败或者响应状态码为5xx时,axios会自动进行重试,直到达到重试次数或者请求成功为止。
推荐的腾讯云相关产品:腾讯云云服务器(CVM),产品介绍链接地址:https://cloud.tencent.com/product/cvm
领取专属 10元无门槛券
手把手带您无忧上云