我要发出两个http请求并处理结果。 因此,我获取了网址并尝试使用FutureBuilder来等待它们,就像这样:
List<T> convertList<T>(List list, T convert(dynamic d)) {
List<T> result = new List<T>();
for (int i = 0; i < list.length; i++) {
result.add(convert(list[i]));
}
return result;
}
Future<List<Team>> fetchTeams() async {
final response = await http
.get("https://some/api/teams");
List responseJson = json.decode(response.body.toString());
return convertList(responseJson, (d) => Team.fromJson(d));
}
Future<List<Player>> fetchPlayers() async {
final response = await http
.get("https://some/api/players");
List responseJson = json.decode(response.body.toString());
return convertList(responseJson, (d) => Player.fromJson(d));
}
new FutureBuilder(
future: Future.wait([fetchPlayers(), fetchTeams()]),
builder: (context, snapshot) {
// .. handling the content
})
问题在于,获取播放器的http呼叫“从不”返回;而且我从来没有说过5分钟左右。超时后,数据可用! 当我只获取没有球队的球员时,请求立即返回。这两个端点都指向azure服务,并且都可用并且正在运行。
对这个问题有任何暗示吗?