flutter - 同时调用多个http端点,合并结果并返回到dart中的单个futurebuilder

标签 flutter dart

我需要从单个 futurebuilder 调用两个 api 端点,并将这些结果合并到一个返回列表变量中。我可以调用单个 http 端点并返回结果,我不确定如何从单个请求同时执行两个单独的 http 调用。

最佳答案

每个 HTTP 请求都会返回一个 future。在 async方法,将两个 future 添加到列表中。然后等待两者都完成 await Future.wait(theList) .

然后处理返回代码、主体等,根据您的需要组合结果,并返回处理后的组合值。在您 future builder 中,您将收到此结果。

Dartlang wait more than one future

例如:

Future<List<Map<String, dynamic>>> getDoubleData() async {
  var value = <Map<String, dynamic>>[];
  var r1 = http.get('https://www.dart.dev');
  var r2 = http.get('https://www.flutter.dev');
  var results = await Future.wait([r1, r2]); // list of Responses
  for (var response in results) {
    print(response.statusCode);
    // todo - parse the response - perhaps JSON
    value.add(json.decode(response.body));
  }
  return value;
}

关于flutter - 同时调用多个http端点,合并结果并返回到dart中的单个futurebuilder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58419659/

相关文章:

flutter 河荚 : how to use consumer widget in slivers

flutter - Flutter Dart:错误_ImmutableMap <动态,动态>' is not a subtype of type ' Map <String,动态>

android - 如何使用 Flutter 使用下拉建议进行文本输入

json - 无法加载 JSON 数据以在 ListView 中显示

google-chrome - 将 Dart 用于 Chrome 扩展

android - 当应用在Android和iOS上显示为屏幕外时执行代码

android - 如何使用singleWhere .. flutter访问列表内的项目

android - Style.xml 文件未在 flutter 插件项目中读取?

ios - 无法在 iOS 模拟器中运行 flutter 应用程序 : warning: [CP] Unable to find matching . xcframework slice in ... [Flutter]

flutter - Backspace 不能与 TextInputFormatter 一起正常工作