Dart by Example: Streams
1. import 'dart:async';
3. main() {
4. // creates a single subscription stream
5. new Stream.fromIterable([1, 3, 5]).listen((i) {
6. print('s1: $i');
7. });
9. // New streams can created from other streams, using
10. // using methods like where(), map(), expand(), take(), or skip()
11. new Stream.periodic(new Duration(milliseconds: 300))
12. .take(3)
13. .listen((_) => print('s2: tick!'));
15. new Stream.fromIterable([1, 2, 5]).map((n) => n * 2).listen((n) => print('s3: $n'));
17. // Broadcast streams can be listened to by multiple consumers.
18. var sc = new StreamController.broadcast();
19. var broadcastStream = sc.stream;
20. broadcastStream.listen((v) => print('s4: $v'));
21. broadcastStream.listen((v) => print('s4: $v'));
22. sc.add(1);
23. sc.add(2);
24. }
1. $ dart streams.dart
2. s1: 1
3. s3: 2
4. s4: 1
5. s4: 1
6. s1: 3
7. s3: 4
8. s4: 2
9. s4: 2
10. s1: 5
11. s3: 10
12. s2: tick!
13. s2: tick!
14. s2: tick!
by @jryanio | source | license