我有一个组件,服务中的方法是:
getResults(option:any) {
//forming the url and patchModel
return this.http.patch(url,patchModel,option);
}
组件文件如下所示:
onClickMenu(option: any): void { //function doesnt return anything
this.service.getResults(option).subscribe(result => {
this.menu = result.menu;
});
}
现在我获得了正确的值,但是在打字稿文件中的onClickMenu之后,还有其他方法可以在this.menu填充之前执行。由于this.menu中的值是其他方法所需要的,因此无法执行。我要等到this.menu得到正确的值。
在没有异步/承诺的情况下,我该怎么做?我热衷于使用可观察的。
答案 0 :(得分:0)
在this.menu
之前被调用的“函数”应该从finally块中调用...在下面的调用中检查我的评论
this.service.getResults(option).subscribe(
result => { this.menu = result.menu; }
() => { /* call your function(s) here... inside the finally block */}
);
this.menu = result.menu
完成后,此finally块将执行,您将获得更新的菜单。