Dart StreamクラスasBroadcastStreamメソッド

Dar言語StreamクラスtoSet()メソッドDart

Dart StreamクラスのasBroadcastStreamメソッドについてメモ書き。

asBroadcastStream()はsingle-subscriptionを複数のリスナーが受信するためのメソッド。
名前付きオプション引数(省略可)として、onListen:とonCancel:が用意されている。
onListen:はlistenの最初に呼び出されるコールバックメソッド。
onCancel:はlistenの最後に呼び出されるコールバックメソッド。

コーディングで動作を確認。

void main() async {
  final stream = Stream.fromIterable([1, 2, 3, 4, 5]);
  final multi = stream.asBroadcastStream(
    // 最初に呼び出される。
    onListen: (subscription) {
      print("Start Listen");
    },
    // 最後に呼び出される。
    onCancel: (subscription) {
      print("Cancel Listen");
    },
  );

  // listen1
  multi.listen((event) {
    print("Listener1:$event");
  });
  // listen2
  multi.listen((event) {
    print("Listener2:$event");
  });
}

実行結果。

Start Listen
Listener1:1
Listener2:1
Listener1:2
Listener2:2
Listener1:3
Listener2:3
Listener1:4
Listener2:4
Listener1:5
Listener2:5
Cancel Listen

コメント

タイトルとURLをコピーしました