用作函数参数时的等待函数在函数 运行 之前未得到解析

Await function when used as a function parameter does not get resolved before the function is run

以下代码使用 async/await 时按预期工作:

try {
       let feedbacks = await feedbackService.get(this.feedBackOdataModel);
        this.feedBackJsonModel.setProperty('/Avaliacoes', feedbacks.results);


        } catch (error) {
            dialogService.showErrorDialog("Erro na obtenção das pesquisas de satisfação", error.statusText + '-' + error.statusCode);
            throw new Error(error);
        }

在解决反馈服务之前停止执行。

但是这个:

... 
this.feedBackJsonModel.setProperty('/Avaliacoes', await
     feedbackService.get(this.feedBackOdataModel).results); 
...

我想结果应该是一样的,但它看到在 setProperty 为 运行 后承诺得到解决。

您的两个代码示例不等价。首先,您正在等待

feedbackService.get(this.feedBackOdataModel)

这大概是一个承诺,而在第二个,你在等待

feedbackService.get(this.feedBackOdataModel).results

大概是 undefined。所以实际上,await 基本上没有效果,undefined 几乎立即传递给 setProperty

要修复 - 使用括号正确指示您正在等待的内容:

this.feedBackJsonModel.setProperty(
    '/Avaliacoes',
    (await feedbackService.get(this.feedBackOdataModel)).results
);