Мне нужен сервис, который возвращал бы наблюдаемое и устанавливал значение в поле тем же методом.
Теперь мой метод userService.getUserDetails()
выглядит следующим образом:
private requestUrl: string;
private bic: string;
private id: string;
private name: string;
getUserDetails(): Observable<User> {
this.bic = 'aaa';
this.id= '123';
this.requestUrl = `${configs.api}v1/bics/` + encodeURIComponent(this.bic) + `/ids/` + encodeURIComponent(this.id) + `/users`;
const userObservable = this.http.get<User>(this.requestUrl).pipe(catchError(this.handleError));
userObservable.subscribe(data => this.name = data.name);
return userObservable;
}
Я хочу делать две вещи, когда вызывается getUserDetails
: 1) возвращать Observable<User>
2) устанавливать значение name
, чтобы я мог получить к нему доступ позже в других классах, внедряя эту службу в конструкторы, не вызывая снова запрос http. Я думаю, что хочу иметь что-то вроде этого:
getName() {
return this.name;
}
Так что я не уверен насчет подписки, потому что я получаю неопределенное значение после попытки использовать значение. Какой здесь лучший подход?