Допустим, у меня есть следующая структура папок:
People
|
|── John
| |── img.png
| |── info.json
|── Craig
| |── img.png
| |── info.json
|── Daniel
| |── img.png
| |── info.json
Я хотел бы получить info.json
каждой папки, указанной в папке People
. Для этого я написал функцию:
import 'dart:convert';
import "dart:io";
Directory folderPath = Directory("/storage/people/");
Future<List> getData() async {
List data = [];
folderPath.list().listen((e) async { //for every entity in directory
var path = e.path;
File infoFile = File("$path/info.json");
String infoString = await infoFile.readAsString();
Map info = jsonDecode(infoString);
data.add(item);
});
return data;
}
К сожалению, она не работает. Функция не ожидает окончания работы l oop и возвращает data
как пустое.
Есть ли способ, чтобы функция возвращала данные после завершения l oop?