【发布时间】:2019-12-20 05:54:11
【问题描述】:
有时您有一个异步任务,它的子任务彼此异步,但有多个同步子任务。
例如,今天是清洁日:
Future<bool> clean(String day) async {
bool allIsClean = false;
if (day == 'sunday') {
bool floorIsClean = await; // Pick up items, vacuum flor, mop floor (in that order);
bool dishesAreClean = await; // collect dishes, start dishwasher, empty dishwasher (in that order);
allIsClean = floorIsClean && dishesAreClean;
}
return allIsClean;
}
清洁地板和清洁盘子可以异步进行。 当洗碗机运行时,我们可以吸尘地板等。 但是清洁地板必须按照准确的顺序(拾取、吸尘、拖把)进行,洗碗机也是如此。
如何在异步代码块中运行异步代码块,而不必为每个任务创建新的异步函数并从当前异步块中调用它们?
【问题讨论】:
-
您是否有理由不想创建一个新函数来单独处理每个函数?如果您为地板和餐具创建两个新的未来函数,那么您可以使用 Future.Wait api.dartlang.org/stable/2.4.1/dart-async/Future/wait.html 一起运行它们
-
并非如此。它只是打破了我的设计模式。我希望我的网络类只包含 http 调用,并且将函数提取到文件的底部会使代码的执行位置变得不那么明显。这与我所代表的一切背道而驰,所以我很容易被转向:)
标签: asynchronous flutter dart async-await