如何在Angular中处理catch HTTP响应?
我使用最新版本和新包HttpClient来执行请求:如何在Angular中处理catch HTTP响应?,angular,Angular,我使用最新版本和新包HttpClient来执行请求: return this.http.post('', data).pipe( catchError(this.handleErrorObservable()) ); 其中handleErrorObservable是我自己处理异常的函数: private handleErrorObservable(error: Response | any) { return Observable.throw(error.me
return this.http.post('', data).pipe(
catchError(this.handleErrorObservable())
);
其中handleErrorObservable
是我自己处理异常的函数:
private handleErrorObservable(error: Response | any) {
return Observable.throw(error.message || error);
}
如何返回对此方法的响应并处理异常?您已经非常接近了
return this.http.post('', data).pipe(
catchError(err => this.handleErrorObservable(err))
);
请注意
err
参数,它是您要查找的错误响应。然后我就把它传下去。首先修复捕获错误,因为它应用函数
并返回可观察的
return this.http.post('', data).pipe(
catchError(error => this.handleErrorObservable(error))
);
在新版的rxjs
中,observeable
中没有throw
操作符,您应该使用throwerr
import {throwError} from 'rxjs';
private handleErrorObservable(error: Response | any) {
return throwError(error.message || error);
}
你到底想问什么还不是很清楚。您已经在使用catchError
运算符。每当你订阅subscribe
上面this.http.post
code返回的任何内容时,你都会在那里看到这个错误。一旦你得到了错误,你就可以做必要的事情了。首先,我想要的应该是private handleErrorObservable(error:HttpErrorResponse){}
,其次是。catch
在新版本中使用了另一个东西谢谢你,但是如何返回body和header作为响应呢?不是正文结果?对不起,我不明白你的问题,你说的标题和正文是什么意思?我的意思是如何从这里获取标题和正文:返回这个.http.post(“”,data)我试过:returnthis.http.post('',data.pipe(map((response:HttpResponse)=>{return response}))代码>谢谢,但是如何返回正文和页眉作为响应?不是身体的结果?我不知道你到底是什么意思。错误响应的结构如下所述: