美文网首页
axios的cancel取消请求

axios的cancel取消请求

作者: Amy_yqh | 来源:发表于2018-06-21 15:43 被阅读0次

    我们在做项目的时候,为了防止一些用户的疯狂点击,获取是tab栏的快速切换,我们往往需要做一些防止重复提交的操作,好处就不用说了。请看代码(使用的是axios)

    var app = new Vue({
      el: '#app',
      data: {
        source: null,
        minutehchartid:'',
        endTime:'',
        startTime:'',
        currentMinutehchartid:'',
        currentEndTime:'',
        currentStartTime:'',
      },
      methods: {
        sendRequest() {
     //如果是同一个请求就按返回,不需要重复请求
          if (this.currentMinutehchartid==this.minutehchartid&& this.currentEndTime.getTime()==this.endTime.getTime()&&this.currentStartTime.getTime()==this.startTime.getTime()) {
              return;
           }
           //防止连续点击,取消上一次请求
             if (this.source != '') {
                this.source.cancel();
             }
           this.currentMinutehchartid=this.minutehchartid;
           this.currentEndTime=this.endTime;
           this.currentStartTime=this.startTime;
           this.source = this.axios.CancelToken.source(); // 这里初始化source对象
           this.axios({
              method: 'post',
              url: "tideInfo/getTideMinuteListPerHour",
              data: {
                    endTime: this.endTime,
                    startTime:this.startTime,
                    tideStationId:_this.minutehchartid
               },
               cancelToken: _this.source.token,
          })
          .then(res => {
            // 你的逻辑
          })
          .catch(res => {
            // 如果调用了cancel方法,那么这里的res就是cancel传入的信息
            // 你的逻辑
               if (this.axios.isCancel(response)) {
                    console.log('Request canceled', response.message);
                } else {
                   this.$message({
                            type: 'info',
                             message: '服务器错误!'
                    });
                 }
          })
        },
      }
    })
    

    这样,随便你怎么疯狂地点击,只要上一个请求没有返回结果,再次请求的话,就会取消上一个请求,执行当前请求。

    相关文章

      网友评论

          本文标题:axios的cancel取消请求

          本文链接:https://www.haomeiwen.com/subject/unzqyftx.html