捕获 Http 错误,而不是解析/拒绝承诺



All,

我正在使用 Angular 8 打字稿中的承诺调用 API(后端(。 需要能够恢复错误响应,当我拒绝错误以获取响应/错误时,我得到"OK"(msg = "OK"(,但在控制台中,我有实际响应的 500 错误。 请参阅下面的"网络"选项卡中的代码和响应。

getAllItem(id: number) {
let promise = new Promise((resolve, reject) => {
this.http.post<any>(environment.apiEndPoint,
{ "Method": "myMethod"},
Helper.getHeader()).toPromise().then((res: any) => {
resolve(res);
},
msg => { reject(msg); });
});
return promise;

}

这是我在"网络"选项卡中的实际响应:

{"Success": false, "ErrorCode": "SYSTEM909", "Data": {}}

在"网络"选项卡中,我得到以下信息 状态代码:500

谢谢

您可能设置了拦截器,这可能会改变错误。请检查拦截器是否设置。

你可以改用RxJScatchError

getAllItem(id: number) {
return this.http.post(environment.apiEndPoint).pipe(
catchError(error => { ... }) // will catch 500 error from api call
)
}

最新更新