axios终止请求

当条件搜索时,快速频繁点击某一个搜索项,如果上一次的请求时间过长而下一次的请求时间较短时,上一次的请求结果将会覆盖下一次的请求数据,造成显示得结果数据不是我们预期的结果,影响用户使用。axios方法中提供了取消请求的接口:在这里插入图片描述
axios详细介绍

封装axios情况:

api封装文件:
export const postCancleRequest = (url, params, that) => {
    return axios({
        method: 'post',
        url: `${base}${url}`,
        data: qs.stringify(params, {
            indices: false
        }),
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        cancelToken: new axios.CancelToken(function executor(c) { // 设置 cancel token
            that.source = c;
        })
    });
}

vue中methods使用:

_this:指向vue;
data(){
	return {
		source:null
	}
},
methods:{
	cancel(){
		if(typeof this.source ==='function'){
			this.source('终止请求'); //取消请求
		}
	},
	getList() {
		/*
		 * 条件改变,获取列表,滚动条清零
		 * 页码初始化
		 * */
		
		this.cancel(); //在请求发出前取消上一次未完成的请求;
		
		let para = { };
		postCancleRequest(this.$globe.bpiURL + '/admin/ledger/queryCount', para,_this).then(res => {
			// console.log(res.data)
			if (res.data && res.data.code == '2000') {
				
			} 
		}).catch(err=>{
			if (this.$axios.isCancel(err)) {
				console.log('Rquest canceled', err.message); //请求如果被取消,这里是返回取消的message
			} else {
				//handle error
				console.log(err);
			}
		})
	},
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值