Observable 类型上不存在属性 catch

joh*_*502 4 rxjs angular

我正在尝试使用 rxjs 添加错误处理拦截器,但我在编译它时遇到问题,因为“catch”闪烁红色

\n\n
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {\n    console.log(req);\n    return next.handle(req).catch(error => {\n        if (error instanceof HttpErrorResponse) {\n            this.messageService.error(`B\xc5\x82\xc4\x85d po\xc5\x82\xc4\x85czenia: ${error.message}`);\n        }\n        return observableThrowError(error);\n    });\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

}

\n

Con*_*don 5

在较新的 rxjs 版本中,您必须使用管道运算符并在其中捕获。\n ref

\n\n

例子:

\n\n
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpSentEvent | HttpHeaderResponse | HttpProgressEvent | HttpResponse<any> | HttpUserEvent<any>> {\n        return next\n            .handle(req)\n            .pipe(catchError( (error: HttpErrorResponse) => {\n                 this.messageService.error(`B\xc5\x82\xc4\x85d po\xc5\x82\xc4\x85czenia:${error.message}`);\n                 return throwError(error);\n            }\n        ))\n    }\n
Run Code Online (Sandbox Code Playgroud)\n