Home Flutter를 위한 Dart 비동기 프로그래밍 - futures, async, await
Post
Cancel

Flutter를 위한 Dart 비동기 프로그래밍 - futures, async, await

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) {});
}
This post is licensed under CC BY 4.0 by the author.