есть ли способ перебрать будущий <list> во флаттере
После выполнения этого запроса на получение я хотел бы перебрать Future, но получаю ошибки, если я попытаюсь использовать циклы for или если я попытаюсь установить его как List. Есть ли другой способ перебора каждого элемента в списке.
Future<List> getDailyTask(DateTime date) async {
var params = {'date': date.toIso8601String()};
Uri uri = Uri.parse('URL');
final newURI = uri.replace(queryParameters: params);
http.Response response = await http.get(
newURI,
headers: {"Accept": "application/json"},
);
List foo = json.decode(response.body);
return foo;
}
1 ответ
Решение
Вы не можете выполнять итерацию напрямую в будущем, но вы можете дождаться завершения будущего, а затем выполнить итерацию по списку.
Вы можете использовать любой из этих методов в зависимости от вашего варианта использования.
List dailyTaskList = await getDailyTask(DateTime.now());
// Now you can iterate on this list.
for (var task in dailyTaskList) {
// do something
}
или
getDailyTask(DateTime.now()).then((dailyTaskList) {
for (var task in dailyTaskList) {
// do something
}
});