Future.wait使用

场景一:

当多个异步任务执行完成之后才继续执行下面的操作。例如步骤二的参数需要从步骤一获取结果。

Future.wait接受一个Future数组参数,只有数组中所有Future都执行成功后,才会触发then的成功回调,只要有一个Future执行失败,就会触发错误回调。下面,我们通过模拟Future.delayed 来模拟两个数据获取的异步任务,等两个异步任务都执行成功时,将两个异步任务的结果拼接打印出来,创建一个test.dart 文件内容如下:

main(){
 Future.wait([
    // 2秒后返回结果  
        Future.delayed(Duration(seconds: 2), () {
            return "hello";
    }),
    // 4秒后返回结果  
        Future.delayed(Duration(seconds: 4), () {
            return " world";
    })
    ]).then((results){
        print(results[0]+results[1]);
    }).catchError((e){
        print(e);
    });
}

运行

dart test.dart

输出结果

Future.wait使用_第1张图片

 

你可能感兴趣的:(flutter,flutter)