我是 Angular 新手,遇到了一个 catch-22:
事实:
我有一个记录我的东西的服务(我的记录器)。
我已经用我自己的实现替换了 $ExceptionHandler(角度的),它将未捕获的异常转发到 my-logger 服务
我有另一个服务,pusher-service,每当要使用“my-logger”在我的应用程序的某处记录致命消息时,都需要通知该服务。
问题:
我不能让 'my-logger' 依赖于 'pusher',因为它会创建循环依赖(因为 'pusher' 使用 $http。圆圈:$ExceptionHandler -> my-logger -> pusher -> $http -> $异常处理程序...)
我的尝试:
为了使这两个服务相互通信,我想在 pusher-service 上使用 $watch:监视 $rootscope 上的一个属性,该属性将在 my-logger 中更新。但是,当尝试在“my-logger”中使用 $rootScope 时,为了更新“推送器”“监视”的属性,我在循环依赖方面失败了,因为事实证明 $rootscope 依赖于 $ExceptionHandler(圆圈: $ExceptionHandler -> my-logger -> $rootScope -> $ExceptionHandler)。
试图找到一个选项来在运行时获取在其上下文“my-logger”服务中工作的范围对象。找不到这样的选择。
也不能使用广播,因为它需要 my-logger 才能访问范围($rootScope),而如上所示,这是不可能的。
我的问题:
是否有一种角度方式让两个服务通过第 3 方实体进行通信?
知道如何解决这个问题吗?