Задать вопрос
@iluxa1810

Как дождаться инициализации приложения?

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

Так вот, этот CanActive срабатывает раньше события обращения к API запроса данных пользователя...

Пробовал выполнить инициализацию пользователя через APP_INITIALIZER:

export function appInitializerFactory(authService: AuthorizationService, permissionsService: PermissionService) {
     console.log("appInitializerFactory1");
     return async () => {
          authService.authorize().pipe(tap(() => {
               permissionsService.currentUser = authService.currentUser;
               console.log("appInitializerFactory2");
          })).toPromise();
     };
}


Да, фабрика стартует раньше CanActive, но CanActive не дожидается завершения и сообщение appInitializerFactory2 возникает позже...
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    WEB-022 Разработка на Angular. Продвинутый уровень
    1 неделя
    Далее
  • Учебный центр IBS
    WEB-007 Разработка на JavaScript
    1 неделя
    Далее
  • Javascript.ru
    Курс по Angular
    6 недель
    Далее
Решения вопроса 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
return забыл
и async там не нужен
и форматируй нормально

export function appInitializerFactory(
  authService: AuthorizationService, 
  permissionsService: PermissionService,
) {
  return () => authService.authorize().pipe(
    tap(() => permissionsService.currentUser = authService.currentUser),
  )
    .toPromise();
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы