【发布时间】:2020-10-25 07:41:54
【问题描述】:
为什么程序在执行打印语句之前不等待函数返回列表?
我认为这是因为我将 forEach 循环设为异步,但我需要将其设为异步以获取作为 Future 的 newSummary。
Future syncToCloud() async{
final List<Map<String,dynamic>> _events = await events();
print(_events.length);
}
Future<List<Map<String, dynamic>>> events() async {
List<Map<String, dynamic>> maps = await db.query('data');
List<Map<String, dynamic>> newMaps=[];
maps.forEach((element)async{
Map<String, dynamic> newElement = {};
if(element['summary']!=''){
newElement['summary'] = await newSummary(element['summary']);
print(newElement['summary']);
}
else{
newElement['summary'] = element['summary'];
}
newMaps.add(newElement);
});
return newMaps;
}
void main()async{
await syncToCloud();
}
【问题讨论】:
标签: flutter asynchronous dart async-await