Я начал делать свой проект по модулю, поэтому каждый должен был иметь доступ к пользователю.
Теперь, когда я его полирую, у меня есть несколько запросов API для одного и того же ( информация о пользователе).
Многое из того, что я обнаружил в inte rnet, устарело и больше не работает (в основном, Rx Js материал).
Что у меня есть: обратный вызов от API с информацией о пользователе. Что я хочу: что-то глобально доступное в проекте (мне нужен только один запрос API для информации о пользователе)
Я сейчас пытаюсь превратить наблюдаемое в другое:
@Injectable({
providedIn: 'root',
})
export class LoginInfoService {
constructor(private http: HttpClient) {}
private userURL = `${environment.API}/loginUser`;
private user$: Observable<LoggedUser>;
private request = false;
public retrieveUser(): Observable<LoggedUser> {
if (!this.request&& !this.user$) {
console.log("call request");
this.user$ = this.getUserJson();
}
return this.user$;
}
private getUserJson() {
console.log('actual request');
this.request = true;
return this.http.get<LoggedUser>(`${this.userURL}?key='123'`);
}
}
Я использую для тестирования «json -server», и хотя я получаю только один «фактический запрос», сервер показывает там несколько запросов. Я использую последнюю стабильную версию Angular.