Сценарий
Если я хочу прочитать из файла и сохранить данные на карте, и если эта карта используется несколько раз для проверки.
Могу ли я сделать это без изменения возвращаемого типа всех методов, использующих вышеупомянутую карту, на 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()) {
...
}
...
}
Каков элегантный способ избежать этой цепочки фьючерсов в качестве возвращаемых типов?