
Dart 문법 비동기 - async, awaitDart/비동기2024. 8. 22. 17:11
Table of Contents
async 키워드
async 키워드는 함수를 비동기 함수로 선언할 때 사용한다.
- 비동기 함수를 선언할 때 함수의 body 앞에 async 키워드를 지정한다.
- 비동기 함수의 반환 타입은 Future<T> 클래스로 지정해야 한다. 여기서 T는 실제 결과값의 타입이다.
- 결과값이 없다면 Future<void>
- 결과값이 String이라면 Future<String>
await 키워드
await 키워드는 비동기 함수를 호출할 때 사용하며, 비동기 작업이 완료될 때까지 기다리도록 한다.
- await는 async로 선언된 함수 내에서만 사용할 수 있다.
- 비동기 함수 호출 앞에 await를 붙이면, 해당 함수의 실행이 완료될 때까지 기다린다.
async/await 사용 예제
다음은 async와 await를 사용한 예제 코드이다:

코드 분석
- createOrderMessage() 함수:
- async 키워드로 비동기 함수로 선언되었다.
- fetchOrder() 호출 시 await 키워드를 사용하여 결과를 기다린다.
- main() 함수:
- async 키워드로 선언되어 await를 사용할 수 있다.
- createOrderMessage() 호출 시 await를 사용하여 결과를 기다린다.
await의 영향
await 키워드의 사용 여부에 따라 실행 결과가 달라질 수 있다:
await 사용 시:

await 사용 시:

주의사항
1. await 없이 비동기 함수 사용: await 없이 비동기 함수를 호출하면, 함수는 Future 객체를 즉시 반환한다.

이 경우, order는 String 값이 아닌 Future<String> 객체가 된다.
2. async 함수 밖에서 await 사용: await는 반드시 async 함수 내에서만 사용해야 한다. 그렇지 않으면 컴파일 에러가 발생한다.
async/await의 장점
- 코드 가독성: 비동기 코드를 동기 코드처럼 작성할 수 있어 이해하기 쉽다.
- 에러 처리: try-catch 구문을 사용하여 에러를 쉽게 처리할 수 있다.
- 순차적 실행: 여러 비동기 작업을 순차적으로 실행하기 쉽다.
'Dart > 비동기' 카테고리의 다른 글
| Dart 문법 비동기 - Stream (0) | 2024.08.22 |
|---|---|
| Dart 문법 비동기 - Future (0) | 2024.08.22 |
| Dart 문법 비동기 - 동기 vs 비동기 프로그래밍 (0) | 2024.08.22 |

@codeJunH :: codeJunH의 IT 공부 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!