[Flutter] 비동기 처리 방식

석준수·2022년 6월 21일
0

flutter

목록 보기
2/2

비동기 처리 방식

다트는 비동기 처리를 지원하는 언어

비동기

언제 끝날지 모르는 작업을 기다리지 않고 다음작업을 처리하게 하는 것을 의미

비동기를 지원하지 않고 동기 방식만을 사용한다면 어떠한 작업이 오래 걸려 진행되지 않을 때 사용자가 실행이 멈춘 것으로 생각하고 프로그램을 종료할 우려가 있음

비동기 프로세스의 작동방식

다트는 async await 키워드 이용해 구현

  • 함수이름 뒤, 본문이 시작하는 중괄호 { 앞에 async 키워드 사용해 비동기로 만듬
  • 비동기 함수 안에서 언제 끝날지 모르는 작업앞에 await 키워드 붙임
  • 앞에 작업을 마친 결과를 받기 위해 비동기 함수 이름 앞에 future 클래스 지정

이와 같은 방법으로 비동기 처리 방식을 구현함

void main() {
checkVersion();
print("end process");
}
Future checkVersion () async {
var version = await lookUpVersion();
print(version);
}

int lookUpVersion () {
return 12;
} 

실행결과는 end process 12 출력됨
메인함수에서 checkVersion 함수를 호출하여 함수에 있는 lookUpVersion 함수에 12를 전달받아서 출력한 다음 end process print 문과 함께 비동기 함수에 12 값도 같이 출력

이런결과가 나오는 이유 (비동기 방식)
checkVersion 함수는 Future 키워드와 async 를 사용하여 비동기 함수로 만들었고
그 결과 비동기 함수 안에 있는 await 키워드가 붙은 함수를 비동기로 처리한 다음
그 결과(12) 를 Future 클래스에 저장해두고 먼저 메인함수에 코드를 먼저 실행하라는 의미
그래서 결과가 12 endprocess 가 아닌 endprocess 12 가 출력

profile
석준수 입니다.

0개의 댓글