如何将http.get.("URL").subscribe转换为promise,让我可以等待它?

问题描述 投票:1回答:1

我如何将http.get.subscribe转换为 await,以便在进入下一段代码之前可以等待它?

async ngOnInit() {
    await this.setupIngredients();

    console.log("this text should be displayed after FINISHED");
    otherCode();
    //....other code
}

我想让... otherCode()console.log("this text should be displayed after FINISHED"); 后执行。setupIngredients() 已完成。

我的setupIngredients函数是这样的。

setupIngredients() {
    this.indicatorDataService.http.get(this.baseGetUrl + "entity=ingredients&indicator=all").subscribe(res => {
        // do something with res


    });
}

我还是不知道为什么它不能转换为正确的Promise。我试着把subscribe替换成toPromise,但还是不行。

promise async-await subscribe
1个回答
0
投票

我通过将订阅包装成这样的 Promise 来解决这个问题。

setupIngredients() {
    return new Promise(resolve => {
            this.indicatorDataService.http.get(this.baseGetUrl + "entity=ingredients&indicator=all").subscribe(res => {
            // do something with res
            resolve();
        });
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.