{{isAuthenticated$ | async }}
console.log(this.isAuthenticated$)
- это бессмысленно. Выводить поток и потом выковыривать из него хранимое значение не надо.this.isAuthenticated$.subscribe(v => console.log(v))
getUser() {
return this.http.get('/server/api/userService').pipe(
tap(data => this.isAuthenticated$.next(!!data['login'])),
tap(data => {
console.log('user', data);
console.log('isAuthenticated', !!data['login']);
}),
);
}
c
- это ссылка, когда вы ей присваиваете новый объект предыдущее значение теряется.this
и никак больше.c
будет сохранена ссылка на созданный объект, но не раньше.он ищет эту переменную выше в глобальной области видимости, и в конце то концов полюбому найдет, к чему это было сказано?
let a = 5;
function func() {
a = a + 1;
console.log(1);
}
func
изменится переменная a
, func
"замыкает" a
. Ссылка на a
считается живой, если возможен вызов func
После добавления такого кода получаю в цикле ошибку
такой способ помещения метода запроса в разметку, плохая идея
Вот кусок реального легаси кода, причем не самого навороченного
1) Сервисом загружаю данные с сервера, присваиваю переменным значения
2) Загружаю сервис в главный модуль
3) В любом из компонентов, без дополнительных инклудов могу использовать переменные {{user.login}}