Dart:如何返回 Future<void>

Pas*_*cal 17 android asynchronous future flutter

我怎样才能回来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(...));
   }
Run Code Online (Sandbox Code Playgroud)

如何返回Future<void>时,forEach循环和全部删除操作完成?

Gio*_*gen 15

你不需要手动返回任何东西,因为一个async函数只有在函数实际完成时才会返回。

查看您的示例,您缺少async关键字,这意味着您需要编写以下内容:

Future<void> deleteAll(List stuff) async {
    stuff.forEach( s => delete(s));
}

Future<void> delete(Stuff s) async {
   ....
   await file.writeAsString(jsonEncode(...));
}
Run Code Online (Sandbox Code Playgroud)

没有必要返回任何东西,因为void顾名思义,它什么都没有。

还要确保您调用deleteAllwriteAsString()使用await.