: Ich bin in Winkel- und stoßen auf eine Catch-22:Winkel JS - Kommunikation zwischen nicht-abhängige Dienste
Fakten:
Ich habe einen Dienst, der meine Sachen anmeldet (my- Logger).
Ich habe die $ Exception (Winkel), mit meiner eigenen Implementierung ersetzt, die
abgefangene Ausnahmen von my-Logger-Dienst weiterleitet habe ich einen anderen Dienst, Drücker-Service, die, wann immer ein benachrichtigt muss fatale Nachricht soll irgendwo in meiner Anwendung mit 'my-logger' protokolliert werden.
Problem.
ich nicht 'my-Logger' haben auf 'Pusher' hängen, da es zirkuläre Abhängigkeit verwendet http $ schaffen wird (als 'Schieber' Der Kreis: $ Exception -> my-Logger -> Drücker -> $ http -> $ Exception ...)
Meine Versuche:
um diese 2-Dienste miteinander kommunizieren zu machen, ich wollte verwenden $ Uhr auf dem Pusher-Dienst: beobachtet eine Eigenschaft auf $ rootscope, die in meinem Logger aktualisiert wird. Aber wenn ich versuche, $ rootScope in 'meine-Logger' zu konsumieren, um die Eigenschaft zu aktualisieren, auf der der 'Pusher' "wacht", scheitert ich bei der Kreisabhängigkeit, da $ rootscope von $ ExceptionHandler (der Kreis: $ ExceptionHandler -> Mein-Logger -> $ rootScope -> $ ExceptionHandler).
Versucht, eine Option zu finden, um zur Laufzeit das Scope-Objekt zu erhalten, das in seinem Kontext 'my-logger' Dienst funktioniert. kann eine solche Option nicht finden.
Kann Broadcast auch nicht verwenden, da es my-Logger benötigt, um Zugriff auf den Bereich ($ rootScope) zu bekommen, und das ist unmöglich, wie oben zu sehen.
Meine Frage:
Gibt es eine Winkel Art und Weise zwei Dienste haben eine 3rd-Party-Unternehmen kommunizieren über?
Irgendeine Idee, wie das gelöst werden kann?
Nein, ich kann es nicht. 'my-logger' kann $ rootScope nicht verwenden, da $ rootScope alleine von $ ExceptionHandler abhängt, was zu der zirkulären Abhängigkeit führt ($ ExceptionHandler -> 'mein-logger' -> $ rootScope -> $ ExceptionHandler). Wie in der ursprünglichen Nachricht angegeben, konnte keine der Funktionen des Oszilloskops verwendet werden: Broadcast, emit, watch ... da 'mein-Logger' aufgrund der zirkulären Abhängigkeit keinen Zugriff darauf haben kann. –