例如下面的代码
var Cake thisCake = new CheeseCake();
thisCake = await fetchGreenTeaCakeOnline();
if (thisCake.isCheeseCake) {
print('This is still a cheese cake.')
} else {
print('The cake is updated')
}
thisCake
最初是cheeseCake
的实例,它将被异步分配为GreenTeaCake
的实例。 if
子句是否将等待await
赋值的执行执行,还是将忽略thisCake
的数据依赖性而执行?更新:由于Günter Zöchbauer,修复了语法错字
最佳答案
await
等待Future
完成。
在您的示例中,thisCake
将获取分配的Future
,然后await
等待其完成。
你可能宁愿
thisCake =等待fetchGreenTeaCakeOnline()
这样await
等待Future
完成,并且将期货值分配给thisCake