Dart中的await关键字是否可以自动处理数据依赖关系?

时间:2018-07-05 00:54:03

标签: asynchronous async-await dart

例如下面的代码

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

修复了语法错误。

1 个答案:

答案 0 :(得分:1)

$img = Image::make('foo.jpg')->orientate(); 等待await完成。 在您的示例中,Future将获得分配的thisCake,然后Future等待其完成。

您可能宁愿

thisCake =等待fetchGreenTeaCakeOnline()

通过这种方式,await等待await完成并将期货值分配给Future