-
Notifications
You must be signed in to change notification settings - Fork 0
/
48-Streams.dart
36 lines (30 loc) · 970 Bytes
/
48-Streams.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import 'dart:async';
void main() async {
// Streams. Solicita uma "inscricao" para um evento. Quando atualiza o evento, recebe a notificacao
print(await countDown().first);
countDown().listen((val){print(val);},
onDone: (){
print('Completo');
},); // listen faz uma subscripcao de stream.
countDown2();
}
Stream<int> countDown() async* { //async* significa Stream. Async sem * = future
for(int i=5; i>0; i--) {
yield i; // yield = provide. Yield vai prover um valor de cada vez
await Future.delayed(Duration(seconds: 1));
}
}
void countDown2() {
final controller = StreamController<int>();
controller.sink.add(1);
controller.sink.add(2);
controller.sink.add(3);
controller.sink.add(4);
controller.sink.add(5);
controller.sink.addError('Hey! Error!');
controller.stream.listen((val){
print(val);}, onError: (err) {
print(err);
});
controller.close();
}