HttpInterceptor 重构错误消息



我有一个HttpInterceptor,我希望它重构我的错误以删除括号。

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
  constructor(public auth: AuthProvider, public app: App, private global: GlobalVariablesProvider) {}
  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return next.handle(request).do((event: HttpEvent<any>) => {
      if (event instanceof HttpResponse) {
      }
    }, (err: any) => {
      // modify err here?
    });
  }
}

我似乎无法直接修改err,并且不确定修改后如何传递错误。 我想对err进行修改是:

err.error.replace(/[|]/, '')

在拦截器中,HTTP 错误将被 handle(request(.catch(...( 捕获

你能做的是:

@Injectable()
export class AuthInterceptor implements HttpInterceptor {
    constructor(public auth: AuthProvider, public app: App, private global: GlobalVariablesProvider) {}
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        return next.handle(request)
            .do((event: HttpEvent<any>) => {
                if (event instanceof HttpResponse) {
                    // do what you want here if your have to
                }
            })
            .catch((err: any) => {
                if (err && err.error) {
                    err.error = err.error.replace(/[|]/, '');
                }
                return Observable.throw(err);
            });
    }
}

最新更新