본문으로 건너뛰기

async와 await

  • 코드가 작성된 순서로 실행되지 않으면 헷갈릴 수도 있음
  • async와 await 키워드로 코드 가독성을 유지
  • async 키워드로 비동기 함수를 지정해
  • await를 통해 작업이 끝나기를 기다려 준다.
  • async 가 지정된 함수 안에서만 await 키워드 사용 가능
Future<void> addNumbers(int number1, int number2) async {
print('$number1 + $number2 계산시작 !');

await Future.delayed(Duration(seconds: 3), () {
print('$number1 + $number2 = ${number1 + number2}');
});
print('$number1 + $number2 코드 실행 끝');
}

결과값 반환받기

  • Future 함수의 결과 값도 await를 사용하여 일반 함수처럼 변수에 값을 할당 가능하다
  • await를 사용하지 않으면 값이 할당 안됨!
Future<int> addNumbers(int number1, int number2) async {
print('$number1 + $number2 계산시작 !');

await Future.delayed(Duration(seconds: 3), () {
print('$number1 + $number2 = ${number1 + number2}');
});
print('$number1 + $number2 코드 실행 끝');
return number1 + number2;
}

void main() async {
// 일반함수와 동일하게 반환값 받기 가능
final result1 = await addNumbers(1, 1);
print(result1);

final result2 = await addNumbers(2, 2);
print(result2);
}