Future
은 미래의 값을 의미.
Future은 비동기로 처리되어야 할 값을 의미한다. 예를 들어 우리가 서버로부터 데이터를 받아올때 서버로 부터 응답값을 받을때까지 우리는 기다려야 한다. 혹은 사용자가 어떤 버튼을 누를지 기다려야한다. 이럴떄 Future을 사용한다.
Future는 Future<타입명> 이런식으로 타입을 명시해야 한다.
async
함수는 무조건 future
를 반환해야한다
await
키워드를 사용한 함수는 무조건 async
함수여야 한다.
await 을 만나면 함수를 잠시 멈추고 함수를 호출한 곳에 future을 리턴한다.
await가 붙은 동작이 완료되기 전까지 함수를 더 이상 진행하지 않는다.
return을 통해 1번에서 주었던 future에서 return 값이 나오게 한다.
void getTodaysToons() async {
final url = Uri.parse('$baseUrl/$today');
final response = await http.get(url);
if (response.statusCode == 200) {
print(response.body);
return;
}
throw Error();
}