【发布时间】:2020-07-16 05:41:37
【问题描述】:
ngOnInit() {
this.getTypeList();
this.buildTemplate();
}
private getTypeList(): void {
this.searchService.getViewTypeList(this.org)
.subscribe(viewTypeList => {
this.viewTypeList = viewTypeList;
});
}
this.buildTemplate() : void {
console.log(this.viewTypeList);
****** some code work on viewTypeList***
}
问题是console.log(this.viewTypeList); 在方法中显示未定义..
我知道这是异步调用,需要时间才能完成,但与此同时,我的下一个代码 this.getTypeList() 被执行并显示未定义。
我希望一旦数据可从 http 服务获得,我的所有剩余处理都应该完成。 someThing like me 代码不应该在没有来自服务的数据的情况下继续进行,因为它为代码中的所有休息方法提供了未定义的。或者有什么办法可以让我事先利用服务中的数据来处理它
【问题讨论】:
-
让
getTypedList返回 observable 而不是订阅它。 -
不要试图将传统的函数风格与反应范式混合。这是大多数 rxjs 问题的根本原因。
标签: angular http promise rxjs observable