我正在尝试一次取消所有待处理的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。
谢谢。
答案 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();
}