У меня есть серверная служба, которая возвращает необходимые мне данные о нескольких компонентах Angular. Моя проблема в том, что он явно вызывался несколько раз. Вот мой запрос на получение:
getUser(): Observable<User> {
if (this.user) {
return Observable.of(this.user);
} else {
return this.http
.get<User>(BACKENDPATH)
.map((user: User) => new User().deserialise(user))
.do((user) => {
this.user = user;
console.log(this.user.getUserName());
return this.user;
});
}
}
Я пробовал следующие методы после получения части функции, но ни один из них не работал:
- .publishReplay (1) .refCount ()
- .shareReplay ()
- .shareReplay (1)
Эти методы работали для других в Интернете, поэтому я предполагаю, что я что-то не так делаю с их реализацией, но не могу понять, что.