С:
resultFromRestCall(){
const json;
this.http.get<object>(myApiUrl).subscribe(res =>
// takes x amount of time to populate json
json['data'] = res['data'] //this is an example
);
// executed instantly after above request has been called
return json;
}
Вы возвращаете json
до того, как будет заполнено, так как запрос асинхронный.
Вместо этого вы можете перевернуть егонемного, и сначала вызовите resultFromRestCall()
, а когда получите ответ, , затем вызов changeMessage()
:
setInterval(() => {
this.resultFromRestCall().subscribe((data) => {
this.changeMessage(data);
});
}, 10 * 1000);
, где resultFromRestCall
просто возвращает наблюдаемое:
resultFromRestCall(){
return this.http.get<object>(myApiUrl);
}
Также не забудьте clearInterval
в OnDestroy
!