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
コメント