Angular - 在 http 拦截器中过滤响应是个好主意吗?

Angular - is filtering responses in http interceptor a good idea?

我制作了一个 http 拦截器,我在其中过滤 HttpEvent 以仅获取 HttpResponse。看起来像这样:

return next.handle(requestToSend).pipe(
  filter(event => event instanceof HttpResponse),
  map((event: HttpResponse<any>) => this.handleResponse(event)),
  catchError(error => this.handleErrors(error))
);

这是我的问题:过滤响应以仅获得 HttpResponse 是个好主意吗?它不会破坏任何东西吗?网络套接字?它真的像某种防火墙一样工作吗?

您的拦截器仅处理 HttpClient 发出的请求。所以它不应该破坏任何与其他 HTTP 请求相关的东西,比如 websockets,只要你不使用 HttpClient 来执行这些请求。

关于请求的过滤,是有道理的,因为有different kind of events that can be returned by the handle方法。但在下面的 map() 函数中,事件被严格键入为 HttpResponse.