Я инициализирую службы на своем компоненте следующим образом:
ngOnInit() {
this.getValue1();
this.getValue2();
this.getValue3();
}
и когда у служб есть данные, я хочу это сделать:
ngOnInit() {
this.getValue1();
this.getValue2();
this.getValue3();
this.result = this.value1.view_count.value + this.value2.view_count.value + this.value3.view_count.value;
}
но я получил это:
ERROR TypeError: невозможно прочитать свойство 'view_count' неопределенного
Как я могу ожидать, что результаты службы будут выполнены в моей работе?
Спасибо за вашу помощь.
ОБНОВИТЬ:
getvalue1(): void {
this.subscription=this.dataService.getViews(360001167865).subscribe(data => {
this.value1 = data;
});
}
service.ts:
getViews(id: number): Observable<any> {
return this.http.get(this.URL + "views/" + id + "/count.json", { headers: headers });
}
Попробуйте использовать обещание, которое вам поможет, потому что это не асинхронная функция. это означает, что код будет ждать окончания ответа HTTP.
this._http.get('API URL').map(res => res.json()).toPromise()
вы можете сделать свою асинхронную функцию для ожидания некоторых данных
async getValue1() {
result = await myAsyncOperation();
return result;
}
но в угловом режиме существует rxjs для обработки асинхронных операций, поэтому вы должны использовать наблюдаемые...
Только что видел. вы написали getValue1 без btackets...
getValue1
пожалуйста? Это асинхронный?