以下代码使用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);
}
执行将暂停,直到feedbackService得到解决。
但是这个:
...
this.feedBackJsonModel.setProperty('/Avaliacoes', await
feedbackService.get(this.feedBackOdataModel).results);
...
我想结果应该是相同的但似乎在运行setProperty之后解析了promise。
您的两个代码示例不相同。在第一个,你正在等待
feedbackService.get(this.feedBackOdataModel)
这可能是一种承诺,而在第二种情况下,你正在等待
feedbackService.get(this.feedBackOdataModel).results
这可能是undefined
。事实上,await
基本上没有效果,undefined
几乎立即传递到setProperty
。
要修复 - 使用括号正确指出您正在等待的内容:
this.feedBackJsonModel.setProperty(
'/Avaliacoes',
(await feedbackService.get(this.feedBackOdataModel)).results
);