如何在Flutter中启动异步任务内的异步任务?

3
有时候你会有一个异步任务,其中包含的子任务彼此之间是异步的,但又存在一些同步的子任务。
例如,今天是打扫卫生的日子:
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;
}

清洁地板和洗碗可以异步完成。 当洗碗机正在运行时,我们可以吸尘等任务。 但是清洁地板必须按照确切的顺序进行(捡起,吸尘,拖地),洗碗机也是如此。

如何在异步代码块内运行异步代码块,而不必为每个任务创建新的异步函数并从当前异步块中调用它们?


你不想为每个函数单独创建一个新的函数吗?如果你为floor和dishes创建两个新的future函数,那么你可以使用Future.Wait一起运行它们。https://api.dartlang.org/stable/2.4.1/dart-async/Future/wait.html - Andres Castro
不是真的。这只是破坏了我的设计模式。 我希望我的网络类只包含http调用,将函数提取到文件底部会使代码执行的位置不太明显。 这与我所坚持的一切相违背,所以我很容易被转化 :) - Joel Broström
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接