angular 取消http请求

由于angular的HTTP请求返回promise类型的数据,通过subscribe()方法来接收返回数据,因此可以通过调用取消订阅 unsubscribe()方法来实现中断HTTP请求。
1.取消一个http请求

let subscribes:any;
this.subscribes = this.http.getChannels(connectionName).subscribe((channels: any) => {})cancelHttp() {//取消请求this.subscribes.unsubscribe()
}

2.当同时多次发送请求时,取消之前的请求

let subscribes:any;
let httpStatus=false
cancelHttp() {if(this.httpStatus){//取消请求this.subscribes.unsubscribe()}else{//设置状态为true,请求正常进行this.httpStatus=true}
}
httpRequest(){this.subscribes = this.http.getChannels(connectionName).subscribe((channels: any) => {this.httpStatus=false})
}

3.取消多组数据,相同的请求(使用唯一id进行区分,只取消相同id的请求,不取消别的

let subscribes={};
let httpStatus={}
cancelHttp() {if(this.httpStatus[id]){//取消请求this.subscribes[id].unsubscribe()}else{//设置状态为true,请求正常进行this.httpStatus[id]=true}
}
httpRequest(){this.subscribes[id] = this.http.getChannels(connectionName).subscribe((channels: any) => {this.httpStatus[id]=false})
}```


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部