dart:async
库中Stream.fromFutures
的用法介绍如下。
用法:
Stream<T>.fromFutures(
Iterable<Future<T>> futures
)
从一组期货中创建一个single-subscription 流。
流以期货完成的顺序报告流上期货的结果。每个future 都提供一个数据事件或一个错误事件,具体取决于future 的完成方式。
如果调用Stream.fromFutures
时某些期货已经完成,它们的结果将以某种未指定的顺序发出。
当所有期货都完成后,流将关闭。
如果futures
为空,则流将尽快关闭。
例子:
Future<int> waitTask() async {
await Future.delayed(const Duration(seconds: 2));
return 10;
}
Future<String> doneTask() async {
await Future.delayed(const Duration(seconds: 5));
return 'Future complete';
}
final stream = Stream<Object>.fromFutures([doneTask(), waitTask()]);
stream.listen(print, onDone: () => print('Done'), onError: print);
// Outputs:
// 10 after 'waitTask' finished.
// "Future complete" after 'doneTask' finished.
// "Done" when stream completed.
相关用法
- Dart Stream.fromFuture用法及代码示例
- Dart Stream.fromIterable用法及代码示例
- Dart Stream.fold用法及代码示例
- Dart Stream.firstWhere用法及代码示例
- Dart Stream.map用法及代码示例
- Dart Stream.asBroadcastStream用法及代码示例
- Dart Stream.handleError用法及代码示例
- Dart Stream.where用法及代码示例
- Dart Stream.reduce用法及代码示例
- Dart Stream.join用法及代码示例
- Dart Stream.error用法及代码示例
- Dart Stream.periodic用法及代码示例
- Dart Stream.take用法及代码示例
- Dart Stream.every用法及代码示例
- Dart Stream.lastWhere用法及代码示例
- Dart Stream.contains用法及代码示例
- Dart Stream.eventTransformed用法及代码示例
- Dart Stream.drain用法及代码示例
- Dart Stream.empty用法及代码示例
- Dart Stream.multi用法及代码示例
- Dart Stream.distinct用法及代码示例
- Dart Stream.timeout用法及代码示例
- Dart Stream.transform用法及代码示例
- Dart Stream.singleWhere用法及代码示例
- Dart Stream.skipWhile用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Stream<T>.fromFutures constructor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。