void main() async {
final future = await helloWorld();
print(future);
}
Future<String> helloWorld() {
return Future.delayed(Duration(seconds: 3),() {
final hello = "Hello World";
print(hello);
return hello;
});
}
이 코드의 특징은 Future을 return 하는 함수를 호출할 때, await 키워드를 사용한 것이다.
main() 함수에서 await 키워드를 사용했기 때문에 async 함수로도 만들어 주었다.
결과(동시)
아마 뭐지? 하면서 의문이 들것이다. helloWorld() 함수는 Future를 return 해주는데 왜 Hello World가 2번이 출력 될까?
그 이유는 await키워드를 만나면 해당 함수를 잠시 정지하고, await 키워드가 붙은 동작이 완료될 때까지 기다린다.
그리고 결과를 상자안의 내용물을 바로 넘겨준다 이 방법을 통해서 Future<String> 으로 String을 얻을 수 있다.
'개발일지 > Dart' 카테고리의 다른 글
Future(비동기) - async , await 활용 - 3 (0) | 2022.11.10 |
---|---|
Future(비동기) - async , await 활용 - 2 (0) | 2022.11.10 |
Future(비동기) - 2 (0) | 2022.11.10 |
Future(비동기) - 1 (0) | 2022.11.10 |
Laxical Scope (0) | 2022.11.09 |
댓글