У меня есть приложение Angular 4.Я вызываю метод getCity () в конструкторе моего сервиса для инициализации свойства cityId.Я использую cityId в другом методе?например, getData ().Когда я пытаюсь вызвать getData () в компоненте, я получаю сообщение об ошибке, что cityId не определен.Как я думаю, это происходит потому, что getCity () не заканчивает свое выполнение, когда getData () начинает выполняться.Оба метода используют Observables и возвращают Observable.Я решил это с помощью getCity (). ConcatMap ((id) => getData (...)).
Не могли бы вы сказать, пожалуйста, это правильный подход?Может быть, есть более правильные способы?
@Injectable()
export class CustomService {
cityId: number;
constructor(private http: HttpClient,
private citiesService: CitiesService) {
this.getCityId()
}
getCityId() {
return this.citiesService.getCity().subscribe(
(city) => {
this.cityId = city['id']
});
}
getData() {
/* use this.cityId here */
}