温馨提示:本文翻译自stackoverflow.com,查看原文请点击:android - Dart: How to return Future
android asynchronous flutter future

android - dart :如何回报未来

发布于 2020-03-27 16:19:53

我该如何退货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循环和全部删除操作完成?

查看更多

查看更多

提问者
Pascal
被浏览
152
Giovanni 2020-02-01 23:38

您无需手动返回任何内容,因为async只有在函数实际完成后函数才会返回。

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

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

Future<void> delete(Stuff s) async {
   ....
   await file.writeAsString(jsonEncode(...));
}

void顾名思义,无需返回任何内容,因为什么也没有。

另外,请确保您致电deleteAllwriteAsString()使用await