vue-统一处理超时axio请求


import axios from 'axios'
//设置全局的请求次数,请求的间隙
axios.defaults.retry =2;
axios.defaults.retryDelay = 1000;
axios.interceptors.response.use(undefined, function axiosRetryInterceptor(err) {
 var config = err.config;
 // 如果config不存在或未设置重试选项,请拒绝
 if(!config || !config.retry) {Vue.$vux.loading.hide(); return Promise.reject(err)};
 // 设置变量跟踪重试次数
 config.__retryCount = config.__retryCount || 0;
 // 检查是否已经达到最大重试总次数
 if(config.__retryCount >= config.retry) {
  //  vux转圈圈的那个隐藏
   Vue.$vux.loading.hide();
   // 抛出错误信息
  return Promise.reject(err);
 }
 // 增加请求重试次数
 config.__retryCount += 1;
 // 创建新的异步请求
 var backoff = new Promise(function(resolve) {
  setTimeout(function() {
   resolve();
  }, config.retryDelay || 1);
 });
 // 返回axios信息,重新请求
 return backoff.then(function() {
  Vue.$vux.loading.hide();
  return axios(config);
 });
});


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM