【axios 取消请求 防止多次请求】

本文介绍了一种在Vue中使用Axios实现取消重复HTTP请求的方法。通过定义`cancelRequest`函数并利用`CancelToken`机制,可以有效地避免因快速连续发起相同请求导致的资源浪费。此外,还展示了如何在用户输入变化时取消上一次请求再发起新的请求。
摘要由CSDN通过智能技术生成

 API 接口

export const getTable = (params,cancelToken={}) => axios.get('api/table_list/', {
    params: params,
    ...cancelToken
});

 main.js

import axios from 'axios'
Vue.prototype.$axios = axios

页面 .vue

 data 绑定 数据

data(){
    return {
        source:null
    }
}

 接口请求

methods:{
    changeInput(){
        this.cancelRequest();
        this.getData();
    },
    getData(){
        getTable(
            { id: this.sid },
            {
              cancelToken:new this.$axios.CancelToken( (c)=> {
                  this.source = c;
              })
            }
        )
        .then((res) => {

        })
        .catch(err => {
            if (this.$axios.isCancel(err)) {
            //请求如果被取消,这里是返回取消的message
              console.log('Rquest canceled', err.message); 
             } else {
             this.$notify.error({
               title: '数据获取失败',
               message: err,
               // duration: 0
             })
          }
        })
    },
    //这是一个取消axios多次请求的方法
    cancelRequest() {
        if (typeof this.source === 'function') {
            this.source('终止请求')
        }
    },
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值