1

我有自定义错误消息正文作为来自 rest api 的 JSON。

{  
   "status":400,
   "url":"/api/abc",
   "message":"Custom Error Message"
}

我想将它作为订阅错误范围内的对象。我尝试在每次使用 HttpInterceptor 响应后将其转换为对象。但是 HttpErrorResponse 是只读的。我怎样才能在服务中获得这个对象?

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(request).do((event: HttpEvent<any>) => {}, (err: any) => {
            if (err instanceof HttpErrorResponse) {
                // Here trying convert to object from json
                err.error = <ErrorMessageBody>JSON.parse(err.error);
            }
        });
    }
4

1 回答 1

1

err.error已经翻译成 JSON。

这对我有用catch

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(req)
        .catch((err: HttpErrorResponse) => {
            return Observable.throw(err.error);
        });
}
于 2018-04-11T20:07:13.997 回答