Я защищаю ленивый модуль с помощью Guard, используя CanLoad.
Я восстанавливаю состояние моего хранилища ngrx и проверяю, прошел ли пользователь аутентификацию.
Вот мойкод в моем auth-guard.service.ts:
canLoad() {
return this.store.pipe(
select('auth'),
take(1),
map(
(authState: fromAuth.State) => {
if (authState.authenticated) {
return true;
} else {
this.router.navigate(['/auth/signin']);
return false;
}
}
))
}
Этот код в порядке.Все работает как ожидалось.
Но вопрос в том ... Почему мне нужно использовать take (1), чтобы это работало?Если я уберу дубль (1), этот охранник не будет работать должным образом.