Angular 8-如何使用Promises和Async / Await

时间:2019-08-15 14:34:08

标签: angular async-await angular-promise

我一直尝试使用教程,但似乎无法弄清楚如何使用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请求中,但是我不确定如何处理将其返回到调用组件的承诺。

2 个答案:

答案 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()的函数也应具有异步签名。 好运:)