用作函数参数时的等待函数在函数 运行 之前未得到解析
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
);
以下代码使用 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
);