axios終止請求

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); //把這條記錄從數組中移除
      }
},

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章