gpt4 book ai didi

javascript - 如何处理 typescript 中异步函数的返回值?

转载 作者:行者123 更新时间:2023-12-01 03:17:58 25 4
gpt4 key购买 nike

casesService 函数处理 HTTP 请求和响应并返回单个对象。我想归还对象。但由于它是一个异步功能,因此它返回空对象(this.caseBook)。我希望它仅在对象具有值(value)后才返回该对象。

public initData (selectedCaseId: number): CaseBook {   

this.casesService
.GetCaseById(selectedCaseId)
.subscribe(data => {

this.caseBook = data;

});
return this.caseBook;
}

最佳答案

对于 typescript 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管道将它绑定(bind)到Angular2:

{{this.initData() | async}}

为了更好的性能,建议为其绑定(bind)一个值,例如:

ngAfterViewInit() {
this.initData().subscribe( data => this.caseBook = data );
}

关于javascript - 如何处理 typescript 中异步函数的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45413433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com