Tengo UserService y GroupService en mi aplicación y tiene sentido que ambos servicios se conozcan y usen funciones entre sí.
Hay varias herramientas en angular que me dan para "arreglar" la advertencia de dependencia circular.
Pero en todas partes está escrito que si tienes una dependencia circular, es una señal de que tienes una mala arquitectura.
Entonces, ¿cuál es la buena arquitectura para casos como ese? ¿Por qué es correcto forzar (muy por la fuerza) a uno de los servicios para que no conozca al otro?
Entonces, el problema es que cuando se necesita crear una instancia de un servicio, dentro del constructor requerirá un segundo servicio. Pero ese segundo servicio para ser instanciado, dentro del constructor requerirá el primer servicio.
Lo que puede hacer es mover toda la lógica de estos 2 servicios a un servicio "principal" y usar este servicio "principal" a través de la aplicación.
tienes 2 opciones:
Extraiga partes de la lógica comúnmente necesarias en algún SharedModule
Si se requiere alguna parte de la lógica de los módulos en otros módulos, entonces no pertenece a ese módulo de funciones sino al módulo de nivel superior (el que inicia la aplicación, hace las cosas principales de la aplicación y carga otros módulos de funciones).