我正在编写一个自定义rxjs运算符来处理记录HttpClient响应错误的过程。我的本能是将自定义运算符放在它自己的文件中,我将在需要的地方包括它。但是,这将它排除在“ Angular世界”之外,那么它将如何访问我的Angular日志记录服务?
答案 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调用都通过此集中式中心。