[Flutter] Dart의 비동기 처리

2025. 4. 28. 21:02· Development/Flutter
반응형

- Future : 비동기(async) 작업을 표현하는 Dart의 핵심 타입

 

- Future 객체를 통해 실행되는 로직이 나중에 처리되는 것을 확인 가능한 코드

// Future - 비동기 작업의 결과 또는 완료 상태를 나타내는 객체
void main() {
  playPcGame();
}

void playPcGame() {
  startBoot();
  startInternet();
  startGame();
}

void startBoot() {
  print("boot completed");
}

void startInternet() {
  Future.delayed(Duration(seconds: 3), () {
    print("internet completed");
  });
  print('delay step');
}

void startGame() {
  print("game completed");
}

 

- 비동기 함수 구성

Future<void> asyncFunc() async {}

 

- 이제 비동기 처리를 통해 서버 또는 DB에서 데이터를 Fetch 하고 그 이후에 가져온 값을 처리할 수 있는 형태를 생각해본다.

 

- 이때, await를 통해 다음 동기 프로세스의 대기를 요청할 수 있다.

void loadData() async {
  String result = await fetchData();
  print(result);
}
  • await fetchData()를 만나면, Dart는 fetchData()가 끝날 때까지 대기한다.
  • fetchData()가 완료되면, 그 결과를 result에 담고 이후 코드를 실행
  • await은 항상 async 함수 안에서만 사용 가능하다.

- 아래와 같이 구성된 로직에서는 await을 통해 중간에 delay 처리로 인한 대기가 있더라도 반드시 그 순서가 지켜지게 된다.

void main() {
  playPcGame();
}

Future<void> playPcGame() async {
  startBoot();
  await startInternet();
  startGame();
}

void startBoot() {
  print("boot completed");
}

Future<void> startInternet() async {
  await Future.delayed(Duration(seconds: 3), () {
    print("internet completed");
  });
  print('delay step');
}

void startGame() {
  print("game completed");
}

 

- 또한 await 말고, then을 통해 Future에서 결과 값에 대한 처리가 가능하기도 하다.

getName().then((name) {
  print("받은 이름: $name");
}).catchError((error) {
  print("에러 발생: $error");
});

 

반응형
저작자표시 (새창열림)
'Development/Flutter' 카테고리의 다른 글
  • [Flutter] Dart 기본 문법 정리
  • [Dart] 기본 문법 정리 2
  • [Dart] Dart 기본 문법 학습 일지 1. 변수 및 null, late
SeungYong.Lee
SeungYong.Lee
반응형
SeungYong.Lee
Win-Dev
SeungYong.Lee
전체
오늘
어제
  • All (230)
    • Development (130)
      • Android (126)
      • iOS (0)
      • Flutter (4)
      • Backend (0)
    • Algorithm (5)
    • Knowledge (5)
      • IT (2)
      • Science (0)
      • ETC & Tip (3)
    • Today I Learn (28)
    • Coding Test (62)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 안녕하세요. 반갑습니다 :)

인기 글

태그

  • Animation
  • Android
  • HTTP
  • 코딩테스트
  • dfs
  • 비동기처리
  • hilt
  • Java
  • 프로그래머스
  • glance
  • 코틀린
  • compose
  • Kotlin
  • Collection
  • Retrofit
  • coroutine
  • exception
  • Flutter
  • Imageview
  • Widget

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
SeungYong.Lee
[Flutter] Dart의 비동기 처리
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.