Угловой сервис для связи и предупреждения о «круговой зависимости» - PullRequest
1 голос
/ 30 апреля 2019

Очень просто у меня есть служба аутентификации и служба пользователя.UserService включен в AuthenticationService.Затем, когда я использую AuthenticationService в UserService, например:

constructor(private authService: AuthenticationService){}

, я получаю:

Circular dependency detected:
src/app/core/authentication/authentication.service.ts -> src/app/shared/services/user.service.ts -> src/app/core/authentication/authentication.service.ts

Обе службы объявлены в массиве поставщиков модуля приложения.Почему я получаю круговую зависимость?

1 Ответ

3 голосов
/ 30 апреля 2019

Вы ввели AuthenticationService в UserService и UserService в AuthenticationService !Не делайте этого!

Круговые зависимости , описанные здесь, относятся к файлам, которые прямо или косвенно импортируют друг друга.Это не редкость в программном обеспечении, но результаты могут отличаться.Это не обязательно означает, что что-то не так произойдет, но важно вспомнить, потому что что-то не так может произойти в зависимости от варианта использования.

По большей части довольно легко изменить свой путь к отсутствию циклических зависимостей.вот почему это предупреждение, но, в конечном счете, я бы посоветовал отойти от шаблонов такого типа.

для параметра Скрыть предупреждение следует добавить showCircularDependencies в следующем порядке:your. angular-cli.json :

 "defaults": {
    "build": {
      "showCircularDependencies": false
    }
  }
...