gpt4 book ai didi

angular - HttpInterceptor 重构错误信息

转载 作者:可可西里 更新时间:2023-11-01 17:05:07 25 4
gpt4 key购买 nike

我有一个 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);
});
}
}

关于angular - HttpInterceptor 重构错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49300953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com