flutter
인프런 코드팩토리 Dart - Async Programming
Apr 13, 2023
Async Programming
import 'dart:async';
void main() {
final controller = StreamController();
final stream = controller.stream.asBroadcastStream();
final streamListener1 = stream.where((val) => val % 2 == 0).listen((val) {
print('Listener 1 : ${val}');
});
final streamListener2 = stream.where((val) => val % 2 == 1).listen((val) {
print('Listener 2 : ${val}');
});
controller.sink.add(1);
controller.sink.add(2);
controller.sink.add(3);
controller.sink.add(4);
controller.sink.add(5);
controller.sink.add(6);
calculate(1).listen((val){
print('calculate(1): $val');
});
calculate(4).listen((val){
print('calculate(4): $val');
});
}
void main() {
calculate(1).listen((val){
print('calculate(1): $val');
});
calculate(4).listen((val){
print('calculate(4): $val');
});
}
Stream<int> calculate(int number) async* {
for (int i = 0; i < 5; i++) {
yield i * number;
await Future.delayed(Duration(seconds: 1));
}
}
void main() {
playAllCalculate().listen((val){
print('$val');
});
}
Stream<int> playAllCalculate() async* {
yield* calculate(4);
yield* calculate(100);
}
Stream<int> calculate(int number) async* {
for (int i = 0; i < 5; i++) {
yield i * number;
await Future.delayed(Duration(seconds: 1));
}
}