解决在vue中axios请求超时的问题
//在main.js设置全局的请求次数,请求的间隙axios.defaults.retry = 4;axios.defaults.retryDelay = 1000;axios.interceptors.response.use(undefined, functionaxiosRetryInterceptor(err){var config = err.confi...
·
//在main.js设置全局的请求次数,请求的间隙
axios.defaults.retry = 4;
axios.defaults.retryDelay = 1000;
axios.interceptors.response.use(undefined, functionaxiosRetryInterceptor(err){
var config = err.config;
//如果配置不存在或未设置重试选项,则返回错误信息
if(!config || !config.retry) return Promise.reject(err.response.data);
//设置变量即跟踪重试次数
config.__retryCount = config.__retryCount || 0;
// 检查我们是否已经超过了总重试次数
if(config.__retryCount >= config.retry) {
// 返回错误信息
return Promise.reject(err.response.data);
}
// 重试次数加1
config.__retryCount += 1;
// 创建延时器等待发送重试请求
var backoff = new Promise(function(resolve){
setTimeout(function(){
resolve();
}, config.retryDelay || 1);
});
// 返回调用AXIOS来重试请求
return backoff.then(function(){
return axios(config);
});
});
作者:L_f50f
链接:https://www.jianshu.com/p/b8fbd2e8d694
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
更多推荐
已为社区贡献18条内容
所有评论(0)