void main() {
int number = getNumber();
print(number);
}
Future<int> getNumber() async {
await Future.delayed(const Duration(seconds: 3));
return 1;
}
위의 코드의 getNumber()는 Future라서 int로 받을 수는 없다고 에러가 뜬다. 아무리 함수 안에 숫자가 들어있다고 해도 서로 타입이 다르면 안되기 때문이다. 제대로 고친다면 다음과 같다.
void main() async {
int number = await getNumber();
print(number);
}
Future<int> getNumber() async {
await Future.delayed(const Duration(seconds: 3));
return 1;
}
Future타입인 getNumber()가 1을 반환할 때까지 기다리고 숫자를 받으면 그걸 int에 넣는다는 것이다. 그 기다리는 코드가 async-await다. 비동시 함수는 무조건 Future타입이다.
void main() {
getNumber().then((value)=>print(value));
}
Future<int> getNumber() async {
await Future.delayed(const Duration(seconds: 3));
return 1;
}
void main() {
getNumber().then((value)=>print(value));
print(2);
print(3);
}
Future<int> getNumber() async {
await Future.delayed(const Duration(seconds: 3));
return 1;
}
잘 보고 갑니다