비동기 프로그래밍
- 이제까지 Dart 언어를 배우는 데 있어 나름 난해하면서도 알고나면 재미있는 비동기 프로그래밍에 대해 키워드로 정리해본다.
1. Future:
Future
는 비동기 작업의 결과를 나타내는 객체. 예를 들어, 파일에서 데이터를 읽는 작업을 시작하면 해당 작업이 완료될 때까지 Future
가 반환된다. Future
는 작업이 성공적으로 완료되면 결과 값을 반환하고, 실패하면 에러를 반환한다.
2. async/await:
- Dart에서는
async
및 await
키워드를 사용하여 비동기 코드를 더 쉽게 작성할 수 있다. async
함수 내에서 await
키워드를 사용하여 Future
가 완료될 때까지 대기할 수 있다.
Future<String> getData() async {
return "데이터";
}
void main() async {
String data = await getData();
print(data);
}
getData()
함수는 Future
를 반환하고, main()
함수에서 getData()
함수를 호출하여 결과를 변수 data
에 저장한다. 그리고 나서 print()
함수가 data
변수에 저장된 데이터를 출력하게 된다.
- 여기서
getData()
함수가 네트워크에서 데이터를 가져오는 작업을 수행하는데, 이 작업은 시간이 걸릴 수 있으므로 async
키워드로 비동기 함수로 만들고 getData()
함수로부터 Future를 반환해서 main()
함수의 getData()
함수가 완료될 때까지 await
키워드로 코드 실행을 일시 중단하고, getData()
함수가 완료되면 data
변수에 데이터를 저장하여 출력하게 된다.