我需要从单个 futurebuilder 调用两个 api 端点,并将这些结果合并到一个返回列表变量中。我可以调用单个 http 端点并返回结果,我不确定如何从单个请求同时执行两个单独的 http 调用。
每个 HTTP 请求都会返回一个 future。在一个async方法中,将两个期货添加到一个列表中。然后等待两者都完成await Future.wait(theList)。
然后处理返回代码、主体等,根据您的需要组合结果,并返回处理后的组合值。在您未来的构建器中,您将收到此结果。
例如:
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3639 次 |
| 最近记录: |