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
void main() {
///비동기 프로그래밍
///동기성 / 비동기성
///동기 : 모든 코드가 순차적으로 진행되는 형태
///비동기 : 코드가 동시다발적으로 실행되서, 순차적으로 보장할 수 없는 형태
///async / await / Future : 1회만 응답을 돌려받는 경우
Future<void> todo(int second) async {
await Future.delayed(Duration(seconds: second));
print("TODO Done is $second seconds");
}
todo(3);
todo(1);
todo(5);
///async* / yield / Stream : 지속적으로 응답을 돌려받는 경우
Stream<int> todo_counter() async* {
print("Todo");
int counter = 0;
while(counter <= 10) {
counter++;
await Future.delayed(Duration(seconds: 1));
print("TODO is Running $counter");
yield counter;
}
print("TODO is done");
}
todo_counter().listen((event) {});
}
Flutter를 위한 Dart 비동기 프로그래밍 - futures, async, await
This post is licensed under CC BY 4.0 by the author.