我一直尝试使用教程,但似乎无法弄清楚如何使用Promises或async await。
我有一个http GET请求,我想在返回之前等待API的结果。之所以返回null,是因为该函数在GET发生之前返回。
HTTP GET
get_UserAccess(practiceId: number, userId: number): UserAccess {
var d: UserAccess;
this.httpclient.get(this.URL).subscribe.(data => {
d = data as UserAccess;
});
return d; //Keeps returning as null
呼叫组件
var userAccess = this.dataService.get_UserAccess(this.practice.practiceId, this.users[i].userId);
this.loadAccess(userAccess);
我尝试过将await和async标记添加到get请求中,但是我不确定如何处理将其返回到调用组件的承诺。
答案 0 :(得分:3)
您可以像这样使用await
运算符:
async getAsyncData() {
this.asyncResult = await this.httpclient.get(this.URL).toPromise();
console.log(this.asyncResult);
}
答案 1 :(得分:0)
HTTP GET
get_UserAccess(practiceId: number, userId: number): UserAccess {
return this.httpclient.get(this.URL); //Keeps returning as null
呼叫组件
async func(){
var userAccess =await this.dataService.get_UserAccess(this.practice.practiceId,
this.users[i].userId).ToPromise();
this.loadAccess(userAccess);
}
请注意,每个调用func()的函数也应具有异步签名。 好运:)