У меня вопрос по дизайну о том, когда и куда отправлять несколько запросов HTTP для получения информации об инициализации (типы, рабочие даты и т. д.), Которые будут отображаться во всех компонентах.
Прямо сейчас у меня есть auth.guard, который после входа пользователя извлекает утверждения пользователя и правила авторизации, а затем проверяет, авторизован ли пользователь. Охранник возвращает true или false в зависимости от их ролей. Отсюда у меня есть около 10 информационных вызовов HTTP, которые одинаковы для большинства моих компонентов. Но я хочу, чтобы эти вызовы HTTP не попадали в мой auth.guard, поскольку они могут работать в фоновом режиме при загрузке компонента, и это не должно быть ответственностью auth.guards.
Я также использую общий сервис, который использует BehaviorSubjects, поэтому несколько компонентов могут подписаться на значение.
Итак, мой главный вопрос заключается в том, как лучше всего, чтобы после того, как auth.guard вернул true, выполнить количество запросов xHTTP и обновить общую службу. Это должно применяться к любому количеству компонентов.
Также искал преобразователи маршрутов, которые могли бы решить проблему, но я бы предпочел сохранить данные в общей службе, а не возвращать данные компоненту и ждать.
Еще одна вещь, которая немного усложняет это, заключается в том, что мои 10 вызовов HTTP распределены по нескольким службам, поэтому, если у меня есть общая служба, мне нужно будет внедрить все другие службы.
@ mast3rd3mon Я хочу запускать эти HTTP-запросы однажды только после входа в систему. Поэтому, если я перехожу от компонента к компоненту, не выполняйте запросы повторно. Кроме того, они такие же, поэтому я хочу, чтобы они были в одном месте, чтобы уменьшить дублирование кода.
значит есть глобальная служба, в которую вы их вызываете?
@deezg это происходит после входа пользователя в систему, так что хорошее время после инициализации приложения. Чтобы получить ответы http, пользователь должен пройти аутентификацию.
ага ... ну тогда, может быть, canDeactivate компонента входа в систему может быть хорошим кандидатом? Запуск глобальной службы в этот момент.





просто запустить их в конструкторе компонентов?