首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpInterceptor重构错误消息

HttpInterceptor重构错误消息
EN

Stack Overflow用户
提问于 2018-03-15 13:38:47
回答 1查看 37关注 0票数 1

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

代码语言:javascript
复制
@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做的修改是:

代码语言:javascript
复制
err.error.replace(/\[|]/, '')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-15 14:07:42

在拦截器和HTTP中,句柄(请求).catch(.)将捕获错误

你能做的是:

代码语言:javascript
复制
@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);
            });
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49300953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档