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使用的主要内容,如果未能解决你的问题,请参考以下文章
C++11 future.wait_for() 总是返回 future_status::timeout
Dart Future.wait 等待多个期货并返回不同类型的结果
std::promise::set_value() 和 std::future::wait() 是不是提供内存围栏?