您无需手动返回任何内容,因为async
只有在函数实际完成后函数才会返回。
查看示例,您缺少async
关键字,这意味着您需要编写以下内容:
Future<void> deleteAll(List stuff) async {
stuff.forEach( s => delete(s));
}
Future<void> delete(Stuff s) async {
....
await file.writeAsString(jsonEncode(...));
}
void
顾名思义,无需返回任何内容,因为什么也没有。
另外,请确保您致电deleteAll
并writeAsString()
使用await
。
当deleteAll和所有delete调用完成时,我想得到通知,以便可以使用delteAll()。then(()=> refreshUI())。正确的策略是什么?
要使用
.then()
,请使用我的代码示例。定义函数签名async
就足够了。好的谢谢 :)
还要注意,调用
deleteAll()
和belowrefreshUI()
本质上是相同的,因为delete()
它不是异步函数。delete()是一个异步函数。我忘记在代码片段中添加async关键字。delete()的实现使用getApplicationsDIrectory(),这也是一个异步函数。