我有一个向服务器发送POST请求的服务:
addPerson(person:PersonDTO) :Observable<any> {
return this.httpClient.post<any>(this.urlBase + 'Persons', person);
}
我订阅了组件中的服务:
this.valueService.addPerson(person).subscribe((data) => {
this.responseCode = data.statusText;
console.log(this.responseCode)
});
我想在控制台上打印响应代码。问题是当出现错误时,代码会在到达console.log
之前停止。如果没有错误,控制台上显示undefined
欢迎光临!
默认情况下,响应仅限于API的响应主体。要获得状态等其他信息,您需要在请求中添加observe
选项:
addPerson(person:PersonDTO) :Observable<any> {
return this.httpClient.post<any>(this.urlBase + 'Persons', person, {observe: 'response'});
}
像您这样的基本订阅意味着您只处理next
用例。为了处理错误,您需要另一个错误回调:
this.valueService.addPerson(person).subscribe(
(data) => {
this.responseCode = data.statusText;
console.log(this.responseCode)
},
(error) => console.error(error)
);