async/await & Future

dbscks1239·2021년 12월 6일
0

dart language

목록 보기
8/12
post-thumbnail

dart문서를 통해 알아본 비동기/동기, Future에 대해 간단히 정리해보자.
https://dart.dev/guides/language/language-tour#asynchrony-support

비동기(async)작업이란?

'async'/'await' 키워드를 이용하여 비동기 작업을 수행한다.
특정 작업을 비동기 작업으로 지정하면, 다른 작업들이 비동기 작업을 기다릴 필요없이 기다리는 시간동안 자신의 작업을 완성하게한다.
보통 시간이 오래걸리는 작업(대량의 데이터 가져오기, 위치정보가져오기 등등)에 유용하게 쓰인다.

Future란?

'Future'형식으로 보통 작성하는데, 비동기작업이 완료된 후 Future타입이 T타입이 될것이라는 것을 암시하는 클래스이다.
Future클래스의 인스턴스인 future는 'completed'(완성)상태와 'uncompleted'(미완성)상태의 비동기작업 결과를 나타낸다.

  • 미완성
    비동기 작업의 값을 만들기 전의 상태이다. 작업이 끝나거나 에러를 나타내길 기다린다.
  • 완성
    비동기작업 완료시 future가 값을 완성한다. 실패시 에러를 완성한다.

async작성

함수() async {}

body{} 내에 특정 매소드 앞에 await키워드를 지정하여 해당 메소드가 완성되는것을 기다릴 수 있다. 즉, 해당 메소드를 필요로 하는 특정 동기작업은 해당 await메소드가 완료될때까지 기다리게 된다.
※ await키워드는 async함수에서만 쓸 수 있다.※

profile
Flutter 학습 일기

0개의 댓글