我的angular2项目中有一个loadSize()函数,它在我的服务中调用getTotalNumberCampaigns()并返回一个observable。并且我订阅了这个observable以获得结果。
这是我的loadSize()
loadSize() {
this.campaignsService.getTotalNumberCampaigns().subscribe(value => {//async call
this.campaignSize = value;
}, (err)=> {}
);
}
假设我的getTotalNumberCampaigns()出错,它会在订阅中触发err => {}。我的问题是我如何知道httpreponse状态代码是什么以便我可以指示用户采取不同的操作(如果连接失败(502),用户应该刷新。如果是access_token到期(500),页面应该跳转到登录页面)
这是我在服务类
中的getTotalNumberCampaigns getTotalNumberCampaigns(): Observable<number> {
return this.http.get(`${this.apiUrl}/Count`, { headers: this.headers })
.map<number>(res => <number>res.json())
}
答案 0 :(得分:6)
返回的错误对应于响应本身,因此您可以使用其status属性来获取状态代码:
loadSize() {
this.campaignsService.getTotalNumberCampaigns().subscribe(value => {//async call
this.campaignSize = value;
}, (err: any) => { console.log(err.status); console.log(err);}
);
}
答案 1 :(得分:0)
在你的loadSize方法
中loadSize() {
this.campaignsService.getTotalNumberCampaigns().subscribe(value => {//async call
this.campaignSize = value;
}, (err)=> {}
);
}
你应该通过
获得响应代码value.status