以下代码使用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后,promise得以解决。
答案 0 :(得分:4)
您的两个代码示例不等效。首先,您正在等待
feedbackService.get(this.feedBackOdataModel)
这大概是一个承诺,第二,您正在等待
feedbackService.get(this.feedBackOdataModel).results
大概是undefined
。因此,实际上await
实际上没有任何作用,undefined
几乎立即传递到setProperty
中。
要解决-使用括号正确指示您正在等待的内容:
this.feedBackJsonModel.setProperty(
'/Avaliacoes',
(await feedbackService.get(this.feedBackOdataModel)).results
);