如何返回 Future<void>
?
Future<void> deleteAll(List stuff){
stuff.forEach( s => delete(s)); //How do I return Future<void> when loop and all delete Operation are finished?
}
Future<void> delete(Stuff s) async {
....
file.writeAsString(jsonEncode(...));
}
如何返回
Future<void>
当forEach
循环和所有删除操作都完成了吗?
最佳答案
你不需要手动返回任何东西,因为 async
函数只会在函数实际完成时返回,但这取决于您如何/是否等待您在此函数中执行的调用。
查看您的示例,您缺少 async
关键字,这意味着您需要编写以下内容:
Future<void> deleteAll(List stuff) async {
stuff.forEach( s => delete(s));
}
Future<void> delete(Stuff s) async {
....
await file.writeAsString(jsonEncode(...));
}
使用 Future<void>
时无需显式返回任何内容,因为 void
顾名思义,什么都不是。还要确保您调用
deleteAll
和 writeAsString()
使用 await
.注意:WAITING所有
delete
/foreach
要完成的调用,请参阅下面的答案以获取更多详细信息。简而言之,您需要将所有 delete
Future.wait
中的调用为了那个原因。
关于android - 飞镖 : How to return Future<void>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60001013/