等待两个http请求挂起,直到超时

时间:2019-03-04 02:24:44

标签: http flutter

我要发出两个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服务,并且都可用并且正在运行。

对这个问题有任何暗示吗?

0 个答案:

没有答案