Future.wait使用

Posted 阳光照不到的王国

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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使用的主要内容,如果未能解决你的问题,请参考以下文章

std::future::wait_for 虚假唤醒?

C++11 future.wait_for() 总是返回 future_status::timeout

Dart Future.wait 等待多个期货并返回不同类型的结果

std::promise::set_value() 和 std::future::wait() 是不是提供内存围栏?

flutter一次调用多个接口 执行多个操作 Future.wait的用法

异常传播和 std::future