Skip to content

Instantly share code, notes, and snippets.

@fengyfei
Last active May 22, 2019 05:11
Show Gist options
  • Save fengyfei/4ebcb62dceb1c270e5f83125899d340b to your computer and use it in GitHub Desktop.
Save fengyfei/4ebcb62dceb1c270e5f83125899d340b to your computer and use it in GitHub Desktop.
[dart:async]Controller.broadcast Basic Usage
import 'dart:async';
main() {
StreamTransformer transformer = StreamTransformer<num, num>.fromHandlers(
handleData: (num val, EventSink sink) {
sink.add(-val);
}
);
StreamController controller = StreamController<num>.broadcast(
onListen: () {
print('New subscriber connected.');
},
);
Stream transformed = controller.stream.transform(transformer);
controller.stream.listen((val) {
print('[Original] Event received: $val');
}, onDone: () {
print('[Original] Stream done');
});
transformed.listen((val) {
print('\t[Transformed] Event received: $val');
}, onDone: () {
print('\t[Transformed] Stream done');
});
for (var i = 0; i < 10; i++) {
controller.sink.add(i);
}
controller.close();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment