當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。