当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Dart Stream.fromFutures用法及代码示例


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.dev大神的英文原创作品 Stream<T>.fromFutures constructor。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。