首页 > 解决方案 > Dart 中的 await 关键字会自动处理数据依赖吗?

问题描述

例如在下面的代码中

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修复了语法错字

标签: asynchronousasync-awaitdart

解决方案


await等待 a 的完成Future。在您的示例thisCake中,将获得Future分配,然后await等待它完成。

你可能更想要

thisCake = 等待 fetchGreenTeaCakeOnline()

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


推荐阅读