Сценарий
Мы аутентифицировали пользователя и отправили объект пользователя в экземпляр нашего хранилища объектов (OStore
).
Мы также хотим поддерживать isAuthenticated:Observable<boolean>
, который отслеживает, аутентифицирован ли пользователь в нашем приложении.
Подход
Сначала мы создаем свойство user$:Observable<User|boolean>
в нашей государственной службе ( StateService
).
Затем мы инициализируем хранилище с помощью USER_KEY
, чтобы отслеживать аутентифицированного пользователя. Начальное значение — false
, которое сообщает приложению, что в настоящее время в магазине нет пользователей:
this.OS.post(StateService.USER_KEY, false);
Наконец, мы получаем наш isAuthenticated:Observable<boolean>
с помощью оператора RxJS map
следующим образом:
this.isAuthenticated$ = this.OS.observe(StateService.USER_KEY).pipe(map(u=>!!u));