Angular - Где запускать HTTP-запросы инициализации после входа в систему

У меня вопрос по дизайну о том, когда и куда отправлять несколько запросов HTTP для получения информации об инициализации (типы, рабочие даты и т. д.), Которые будут отображаться во всех компонентах.

Прямо сейчас у меня есть auth.guard, который после входа пользователя извлекает утверждения пользователя и правила авторизации, а затем проверяет, авторизован ли пользователь. Охранник возвращает true или false в зависимости от их ролей. Отсюда у меня есть около 10 информационных вызовов HTTP, которые одинаковы для большинства моих компонентов. Но я хочу, чтобы эти вызовы HTTP не попадали в мой auth.guard, поскольку они могут работать в фоновом режиме при загрузке компонента, и это не должно быть ответственностью auth.guards.

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

Итак, мой главный вопрос заключается в том, как лучше всего, чтобы после того, как auth.guard вернул true, выполнить количество запросов xHTTP и обновить общую службу. Это должно применяться к любому количеству компонентов.

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

Еще одна вещь, которая немного усложняет это, заключается в том, что мои 10 вызовов HTTP распределены по нескольким службам, поэтому, если у меня есть общая служба, мне нужно будет внедрить все другие службы.

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

mast3rd3mon 24.05.2018 17:25

@ mast3rd3mon Я хочу запускать эти HTTP-запросы однажды только после входа в систему. Поэтому, если я перехожу от компонента к компоненту, не выполняйте запросы повторно. Кроме того, они такие же, поэтому я хочу, чтобы они были в одном месте, чтобы уменьшить дублирование кода.

DevEng 24.05.2018 17:28

значит есть глобальная служба, в которую вы их вызываете?

mast3rd3mon 24.05.2018 17:28
stackoverflow.com/questions/41619443/…
dee zg 24.05.2018 18:08

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

DevEng 24.05.2018 20:34

ага ... ну тогда, может быть, canDeactivate компонента входа в систему может быть хорошим кандидатом? Запуск глобальной службы в этот момент.

dee zg 24.05.2018 20:50
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
6
245
0

Другие вопросы по теме