casesService函数处理HTTP req和response并返回单个对象。我想要返回该对象。但由于它是异步功能,因此返回空对象(this.caseBook)。我希望它只有在有值后才能返回对象。
public initData (selectedCaseId: number): CaseBook {
this.casesService
.GetCaseById(selectedCaseId)
.subscribe(data => {
this.caseBook = data;
});
return this.caseBook;
}
答案 0 :(得分:2)
对于打字稿Promise,你可以这样工作:
public async initData (selectedCaseId: number): CaseBook {
return await this.casesService.GetCaseById(selectedCaseId);
}
但由于您的this.casesService.GetCaseById
是一个Observable,您可能无法直接从中返回纯值。返回一个Observable。
public initData (selectedCaseId: number): Observable<CaseBook> {
return this.casesService
.GetCaseById(selectedCaseId);
}
然后你可以用async
管道将其绑定到angular2:
{{this.initData() | async}}
为了获得更好的性能,建议为其绑定一个值,例如:
ngAfterViewInit() {
this.initData().subscribe( data => this.caseBook = data );
}