Angular 类型Observable上不存在属性捕获
我正试图用rxjs添加错误处理拦截器,但我在编译它时遇到了一个问题,因为“catch”闪烁着红色Angular 类型Observable上不存在属性捕获,angular,rxjs,Angular,Rxjs,我正试图用rxjs添加错误处理拦截器,但我在编译它时遇到了一个问题,因为“catch”闪烁着红色 intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> { console.lo
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
console.log(req);
return next.handle(req).catch(error => {
if (error instanceof HttpErrorResponse) {
this.messageService.error(`Błąd połączenia: ${error.message}`);
}
return observableThrowError(error);
});
}
intercept(req:HttpRequest,next:HttpHandler):可观察{
控制台日志(req);
返回next.handle(req.catch)(错误=>{
if(HttpErrorResponse的错误实例){
this.messageService.error(`Błd połczenia:${error.message}`);
}
返回ObservateThrowError(错误);
});
}
}在较新的rxjs版本中,您必须使用管道操作符并在其中捕捉。 示例:
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {
return next
.handle(req)
.pipe(catchError( (error: HttpErrorResponse) => {
this.messageService.error(`Błąd połączenia:${error.message}`);
return throwError(error);
}
))
}
intercept(req:HttpRequest,next:HttpHandler):可观察{
下一个返回
.句柄(req)
.pipe(catchError((错误:HttpErrorResponse)=>{
this.messageService.error(`Błd połczenia:${error.message}`);
返回投掷器(错误);
}
))
}