首页 > 解决方案 > Vuejs2取消路由导航上的http请求

问题描述

当用户离开(破坏)生命周期时,我试图取消旧的未完成的 http 请求

目前我有一个方法

methods:{
   getdata(){
     this.$http.get("users").then((res)=>{

          ///do stuff with returned data
     })
   }
}

现在我如何取消上面的http请求,如果它不完整

所以在被破坏的生命周期中是这样的

destroyed(){
  //here cancel above http request
}

我该怎么做?

标签: vue.jsvuejs2

解决方案


你可以尝试这样的事情:

let ongoingRequest
export default {
    beforeDestroy() {
        ongoingRequest.abort()
    },
    methods: {
        getdata() {
            this.$http.get("users", {
                before(request) {
                    ongoingRequest = request
                }
            }).then((res) => {
                ///do stuff with returned data
            })
        }
    }
}

我在这里发现了一个谈论这个的问题。


推荐阅读