late Future<List<Map<String, dynamic>>> _futureItemList;
...
@override
void initState() {
super.initState();
...
_loadData();
...
}
void _loadData() {
_futureItemList = () async {
final newItemList = await selItemList();
...
가공
...
return newItemList;
}();
}
위 소스에서 즉시 실행 익명 함수(IIFE) 패턴을 이용하여 동기 함수 내부에서 비동기 익명함수로 Future Type 데이터를 받고 있다.
_futureItemList = ( () async { ... } ) ();
참고로 dart는 async 키워드가 붙은 비동기 함수를 리턴타입을 명시하지 않았더라도 내부적으로 Future타임으로 Wrapping하여 반환한다.
즉 return이 없다면 Future<void>, T type return이라면 Future<T>로 반환한다.
참고 : https://dart.dev/language/async#declaring-async-functions