axios终止请求

    技术2022-07-10  137

    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); //把这条记录从数组中移除 } },
    Processed: 0.011, SQL: 9