【发布时间】:2025-11-28 18:20:06
【问题描述】:
场景
如果我想从文件中读取数据并将数据存储在地图中,并且该地图被多次用于验证。
我是否可以这样做而无需将使用上述映射的所有方法的返回类型更改为 Future?
例子:
Map metadata = null
Future readFromFile async {
.... metadata = await File.readingfromFile(...);
}
Future getRegion(..) async {
if(metadata == null) { await readFromFile() }
return metadata["region"]
}
使用上述代码,如果一个方法(如 isValidRegion 等)使用并需要 getRegion(..) 来完成,那么 isValidRegion 的返回类型应该转换为 Future。
Future<bool> isValidRegion(..) async {
return ((await getRegionData(...)) != null )
}
如果 isValidRegion 存在于其他方法中,则它们的返回类型也必须更改为 Future。
Future<String> parse(...) async {
....
if(await isValidRegion()) {
...
}
...
}
什么是避免这种期货链作为返回类型的优雅方法?
【问题讨论】:
标签: dart