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);
});
});
