【发布时间】:2019-08-02 19:20:45
【问题描述】:
我有一个组件,服务中的方法是:
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;
});
}
现在我得到了正确的值,但是我在 typescript 文件中的 onClickMenu 之后还有其他方法,这些方法在 this.menu 填充之前执行。由于其他方法需要 this.menu 中的值,因此无法执行。我想等到 this.menu 获得正确的值。
没有 async/Promise,我该如何做到这一点?我热衷于使用 observable。
【问题讨论】:
-
在订阅回调中添加另一行,并在您拥有
menu实例后调用您想要执行的代码。 -
这是不可能的,因为结果会进入 HTML 文件,该文件调用另一个需要正确值“this.menu”的方法。我需要一种方法来等待 this.menu 获取正确的值。
标签: typescript angular6 angular-httpclient