美文网首页
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取消请求

    我们在做项目的时候,为了防止一些用户的疯狂点击,获取是tab栏的快速切换,我们往往需要做一些防止重复提交的操作,好...

  • AFNetworking 怎么取消网络请求

    拿到 NSOperation取消单个网络请求,operation 直接取消:[operation cancel];...

  • axios如何取消接口请求

    vue项目,如何在axios中取消已经发送的请求呢? 原生js的abort()这个方法 在axios中取消接口请求...

  • axios 取消请求

    axios文档里介绍的取消axios请求有以下两种方式: 举?:切换路由时,取消上个路由的请求。 其实我们的解决方...

  • axios取消请求?

    前言 最近在项目中遇到一个问题,在连续发送同一请求时,如果第二次请求比第一次请求快,那么实际显示的是第一次请求的数...

  • 防止发起多余http请求的几种方式

    cancelToken 场景: 请求接口数据量过大,结果未返回需要取消接口pending用法:axios取消请求的...

  • Swift - 取消未完成的网络请求(使用Alamofire)

    1.取消指定的请求 这种方式最简单,就是先将请求的 request 对象保存起来,之后调用它的 cancel() ...

  • 线程取消(pthread_cancel)

    基本概念 pthread_cancel调用并不等待线程终止,它只提出请求。线程在取消请求(pthread_canc...

  • axios

    import axios from 'axios'import qs from 'qs'let cancel ,p...

  • 问题总结

    1. 取消axios请求 业务场景:单页应用,希望退出当前页的时候,取消请求 官网: https://github...

网友评论

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

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