Вы можете вернуть обещание и решить в обратном вызове finally:
service
fetch(URL: string): Promise < any > {
return new Promise(resolve => {
this.http.get(URL)
.subscribe(response => {
console.debug("response = %O", response);
// set data locally
this.myVariable = data[0]["myVarible"];
}, error => {
console.error(error);
}, () => { // finally
resolve();
})
});
}
вызывающий конструктор компонента
this.myService.fetch(URL).then(() => {
console.log(this.myService.myVariable);
});
Если вы не используете веб-сокеты, вам придется часто опрашивать базу данных на предмет новых данных; обернуть выборку конструктора вызывающего компонента в setInterval