HttpInterceptor 重构错误信息
HttpInterceptor refactor error message
我有一个 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);
});
}
}
我有一个 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);
});
}
}