如何在自定义rxjs运算符中调用角度服务?

时间:2019-06-27 20:09:14

标签: angular rxjs

我正在编写一个自定义rxjs运算符来处理记录HttpClient响应错误的过程。我的本能是将自定义运算符放在它自己的文件中,我将在需要的地方包括它。但是,这将它排除在“ Angular世界”之外,那么它将如何访问我的Angular日志记录服务?

1 个答案:

答案 0 :(得分:0)

拦截器是一种可能的解决方案。另一种选择是创建自己喜欢的http服务

class Http{
   constructor(private http:HttpClient){}
   logging = (res)=>tap(res=>log(res))
   preIntercept(options)=>options
   post(options){ 
      options=preIntercept(options)
      return http.post(options).pipe(logging)
   } 
}

它只为您提供更大的灵活性,并且代码更加明确。使用默认拦截器,您将遇到很多if else情况,因为每个http调用都通过此集中式中心。