dart:async
库中Future.wait
方法的用法介绍如下。
用法:
Future<List<T>> wait<T>(
Iterable<Future<T>> futures,
{bool eagerError = false,
void cleanUp(
T successValue
)?}
)
等待多个期货完成并收集它们的结果。
返回一个 future,一旦所有提供的 future 都完成,它就会完成,或者带有结果,或者如果任何提供的 future 失败,则返回一个错误。
返回的未来的值将是所有值的列表,这些值按照通过迭代 futures
提供的期货的顺序生成。
如果任何未来以错误完成,则返回的未来以该错误完成。如果进一步的期货也以错误完成,则这些错误将被丢弃。
如果eagerError
为真,则返回的future 会在一个future 出现第一个错误时立即完成并出现错误。否则所有的futures必须在返回的future完成之前完成(仍然有第一个错误;其余的错误被静默删除)。
在错误的情况下,cleanUp
(如果提供)将在成功期货的任何非空结果上调用。这使得 cleanUp
资源可能会丢失(因为返回的未来不提供对这些值的访问)。如果没有错误,则不使用cleanUp
函数。
对cleanUp
的调用不应抛出。如果是这样,则错误将是未捕获的异步错误。
例子:
void main() async {
var value = await Future.wait([delayedNumber(), delayedString()]);
print(value); // [2, result]
}
Future<int> delayedNumber() async {
await Future.delayed(const Duration(seconds: 2));
return 2;
}
Future<String> delayedString() async {
await Future.delayed(const Duration(seconds: 2));
return 'result';
}
相关用法
- Dart Future.whenComplete用法及代码示例
- Dart Future.doWhile用法及代码示例
- Dart Future.any用法及代码示例
- Dart Future.value用法及代码示例
- Dart Future.catchError用法及代码示例
- Dart Future.error用法及代码示例
- Dart Future.timeout用法及代码示例
- Dart Future.sync用法及代码示例
- Dart Future.delayed用法及代码示例
- Dart Future用法及代码示例
- Dart FutureExtensions.onError用法及代码示例
- Dart Function.apply用法及代码示例
- Dart FileList.first用法及代码示例
- Dart FileList.length用法及代码示例
- Dart File用法及代码示例
- Dart Finalizer.attach用法及代码示例
- Dart Float32List.view用法及代码示例
- Dart FileSystemEntity用法及代码示例
- Dart FileSystemEntity.resolveSymbolicLinks用法及代码示例
- Dart Finalizable用法及代码示例
- Dart File.renameSync用法及代码示例
- Dart Float32x4List.sublist用法及代码示例
- Dart Finalizer用法及代码示例
- Dart FileSystemEntity.resolveSymbolicLinksSync用法及代码示例
- Dart FileList.elementAt用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 wait<T> method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。