Dart StreamクラスのfromFuturesコンストラクタについてメモ書き。
fromFuturesは複数のFutureからsingle-subscriptionを生成するコンストラクタ。
single-subscriptionについては以下を参照して欲しい。
fromFuturesは引数としてFutureを格納した配列を受け取る。
StreamイベントはFutureが完了した順に生成され、すべてのFutureが完了するとStreamは閉じられる。
コーディングでfromFuturesの動きを確認。
コード内のFuture.delayedコンストラクタについては詳細を以下に掲載しているので、ご不明な方はこちらをどうぞ。
void main() {
Future<String> test1() async {
return 'test1';
}
Future<String> test2() async {
await Future.delayed(Duration(seconds: 3));
return 'test2';
}
final stream = Stream<String>.fromFutures([test1(), test2()]);
stream.listen((event) {
print(event);
}, onDone: () => print('完了'));
}
Futureを返すtest1()とtest2()をfromFuturesの引数として渡している。
実行結果。
test1
test2
完了
コメント