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