【发布时间】:2019-12-10 23:41:21
【问题描述】:
当在forEach 中使用await 时,代码不会等待,而是在forEach 之后继续执行代码,但是,当使用普通的for 时,它会正常等待,请参阅以下 sn -p:
Future<void> uploadTexts(List<String> someTexts) async {
for(int i = 0; i < someTexts.length ; i++) {
var text = someTexts[i];
if (text != null) {
await uploadText(text);
}
}
print("THIS PRINTS AFTER THE FOR IS DONE");
}
Future<void> uploadTexts(List<String> someTexts) async {
someTexts.where((text) => text != null).forEach((text) async{
await uploadText(text);
});
print("THIS PRINTS BEFORE THE FOREACH IS DONE");
}
第一个示例将在 for 完成后打印,而第二个示例将在 for 完成之前打印。
我是不是做错了什么?
【问题讨论】:
标签: flutter dart async-await