场景
假设咱们有多个异步办法,每个异步办法回来一个bool
值,终究咱们需要依据一切办法的回来值判别,假如都为true
咱们才可进行后续操作。
示例
Future<bool> func1() async {
return true;
}
Future<bool> func2() async {
return false;
}
Future<bool> func3() async {
return false;
}
process(){
// 这儿咱们需要调用以上3个办法并获取回来值来判别
// 如何完成呢?
// ...履行后续操作
}
完成方案
运用Future.wait
和Future.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) => {
// ...履行后续操作
});
}