场景

假设咱们有多个异步办法,每个异步办法回来一个bool值,终究咱们需要依据一切办法的回来值判别,假如都为true咱们才可进行后续操作。

示例
Future<bool> func1() async {
  return true;
}
Future<bool> func2() async {
  return false;
}
Future<bool> func3() async {
  return false;
}
process(){
  // 这儿咱们需要调用以上3个办法并获取回来值来判别
  // 如何完成呢?
  // ...履行后续操作
}

完成方案

运用Future.waitFuture.then办法,完成异步办法并行且等候全部完毕后doNext

示例
process() async {
  Future.wait([func1(), func2(), func3()]).then((value) => {
    // ...履行后续操作
  });
}

不过看到以上代码可能会有疑问,我怎么拿到三个异步办法的回来值呢?
让咱们来打印一下then办法中的value

[true, false, false]
Process finished with exit code 0

所以value便是三个异步办法的回来值的集合,咱们就可以以此来做判别了。
或许咱们可以把此处的value的参数类型标明,便于了解和阅读:

process() async {
  Future.wait([func1(), func2(), func3()]).then((List<bool> value) => {
    // ...履行后续操作
  });
}