一次取消所有角度为4的待处理请求

时间:2018-07-26 06:36:00

标签: angular http

我正在尝试一次取消所有待处理的HTTP请求

我尝试订阅取消,但对我而言无效。

我现在正在取消使用所有未决请求的循环订阅,它对我有用。

但是我觉得这不是一个正确的方法,任何人都可以帮助我。

    for(let i = 0; i < 10;i++){
   let request = this.http.post(this.url, { }).map(
                    response => response.json()).subscribe(
                    data => {
                    },
                    err => {

                    })
     this.subscriptionOfHttp.push(request)
    }
    OnNgDestroy(){
          for(let k = 0; k < this.subscriptionOfHttp.length;i++){
                      this.subscriptionOfHttp[k].unsubscribe()
        }

    }

就像我现在正在做的那样,我想一次取消订阅所有请求而没有forloop。

谢谢。

1 个答案:

答案 0 :(得分:0)

以这种方式尝试。

订阅具有add()方法,可将所有订阅放入内部数组。如果您随后使用unsubscribe(),则所有订阅将立即被该订阅取消订阅。

public subscriptions = new Subscription();

// ...

someMethod() {
    for(let i = 0; i < 10;i++){
       let request = this.http.post(this.url, { }).map(
                response => response.json()).subscribe(
                data => {
                },
                err => {

                })
        this.subscriptions.add(request);
    }
}

ngOnDestroy() {
    this.subscriptions.unsubscribe();
}