【问题标题】:Angular interceptor - rxjs/map response fieldAngular 拦截器 - rxjs/map 响应字段
【发布时间】:2021-07-08 19:17:29
【问题描述】:

应用以下拦截器时不返回响应

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

    return next.handle(req).pipe(
      map(response => {
        if (response instanceof HttpResponse) {
          return response.body.data;
        }
        return response;
      })
    );
  }

我希望每个响应的“数据”字段是原始调用者组件中唯一存在的字段

为什么会发生,我怎样才能更好地实现它?

否则我必须为我的项目中的每个请求明确添加pipe -&gt; pluck('data')

【问题讨论】:

    标签: angular rxjs angular-http-interceptors


    【解决方案1】:
    intercept(req: HttpRequest, next: HttpHandler): Observable<HttpEvent<any>> {
    
            return next.handle(req).pipe(map((event: HttpEvent<any>) => {
                if (event instanceof HttpResponse) {
                    event = event.clone({body: event.body.data});
                }
                return event;
            }));
    
        }
    

    在该函数订阅中,您将获得 response.body 作为数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多