运行此get请求后,我想在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;
}
答案 0 :(得分:2)
您不能直接对将来进行迭代,但是可以等待将来完成,然后在列表上进行迭代。
您可以根据使用情况使用这两种方法。
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
}
});