비동기 : 코드가 동시다발적으로 실행
동기 : 모든 코드가 순차적으로 진행
async / await /Future : 1회만 응답을 돌려받음
async* / yield / Stream : 지속적으로 응답을 돌려받는 경우
1회만 응답을 돌려받는 경우이다.
void main(){
Future<void> todo(int second) async {
await Future.delayed(Duration(seconds: second));
print('TODO Done in $second seconds');
}
todo(3);
todo(1);
todo(5);
}
TODO Done in 1 seconds
TODO Done in 3 seconds
TODO Done in 5 seconds
지속적으로 응답을 받는 경우
void main(){
Stream<int> todo() async*{
print('TODO');
int counter = 0;
while(counter <= 10){
counter++;
await Future.delayed(Duration(seconds: 1));
print('TODO is Running $counter');
yield counter; // counter를 돌려줌
}
print('ToDO is Done');
}
todo().listen((event) { });
}
TODO
TODO is Running 1
TODO is Running 2
TODO is Running 3
TODO is Running 4
TODO is Running 5
TODO is Running 6
TODO is Running 7
TODO is Running 8
TODO is Running 9
TODO is Running 10
TODO is Running 11
ToDO is Done'Flutter' 카테고리의 다른 글
| 플러터 위젯 - 예시 (0) | 2024.03.13 |
|---|---|
| Flutter 위젯 (0) | 2024.03.12 |
| dart(2) - 예외처리 (0) | 2024.03.11 |
| Flutter 설치 (0) | 2024.03.10 |
| Dart 기초 (0) | 2024.03.09 |