使用axios查询失败后,再次重复发起请求
分类: axios 282 0
今天在做项目时遇到由于对接数据方的平台不稳定,导致查询他们数据时,可能查询失败。
为了尽量规避这种问题,于是需要在请求失败后,能够再次发起请求,试图保证数据展示的效果。
/**
* 响应拦截器
*/
let retry = 4; // 重查次数设置
let retryDelay = 1000; // 重查延时ms
axios.interceptors.response.use(
response => {
if (response.data.code == -1) {
// sql 查询出错时返回 -1
// 添加请求次数系数
response.config.requestCount = response.config.requestCount || 1;
// 当前请求次数小于 重查次数,则执行重新查询
if (response.config.requestCount < retry) {
response.config.requestCount++; // 执行重查后,系数+1
let backoff = new Promise(resolve => {
setTimeout(() => {
resolve();
}, retryDelay || 100);
});
return backoff.then(() => {
return axios(response.config);
});
} else {
return response;
}
} else {
return response;
}
},
error => {
// 错误
console.log(error);
return Promise.reject(error);
}
);
- 我们这里是通过后台连接的,所以是在resopnse中做的处理,若朋友们是直接连接问题导致的查询失败,也可以将其放到 error中进行同样的处理即可。-
共 0 条评论关于 “使用axios查询失败后,再次重复发起请求”