axios終止之前的所有請求
1.在請求攔截器中的config對象添加cancelToken參數
// 將正在發起的請求存到數組中
let reqList = (Vue.prototype.pending = []);
// 構建axios實例
const cancelToken = axios.CancelToken;
const source = cancelToken.source();
const instance = axios.create();
instance.interceptors.request.use(
(config) => {
config.cancelToken = new cancelToken((c) => {
// 這裏的C是一個函數,用於終止請求的作用
// 這裏的ajax標識我是用請求地址&請求方式拼接的字符串,當然你可以選擇其他的一些方式
reqList.push({ f: c });
// }
});
// -----------------------------------------------------------------------------------------
return config;
},
(error) => {
return Promise.reject(error);
}
);
Vue.prototype.$axios = instance;
//終止請求具體使用 請求之前調用該方法
removePending(errorMessage) {
const errorMsg = errorMessage || "cancelRequest----取消請求默認信息";
for (let i = this.pending.length - 1; i >= 0; i--) {
this.pending[i].f(errorMsg); //執行取消操作
this.pending.splice(i, 1); //把這條記錄從數組中移除
}
},