如何为变量分配Future <List>返回类型?

时间:2019-06-25 14:29:20

标签: flutter dart

我创建了一个进行API调用的方法。如下面的示例所示,它接收并返回数据:

Future<List<SearchResult>> postCall() async {
  List<SearchResult> searchResult = [];
  ....
  return  searchResult;
}

而且,我已尝试将响应存储到List中,如下面的代码所示。但是,我遇到了这个错误: Avalue of type Future<List<SearchResult>> can't be assigned to a variable of type List<sResult>

我正在尝试将响应存储到列表中,因为列表更容易遍历数据。是否有其他方法可以将响应存储在List中?或如何使用FutureBuilder遍历嵌套对象?

List<SearchResult> sResult = [];
sResult = serviceOne.postCall();

2 个答案:

答案 0 :(得分:1)

我认为应该是这样,因为它是Future的结果。

sResult = await serviceOne.postCall();

答案 1 :(得分:0)

您正确地等待了API调用,并执行了Failed to load resource: the server responded with a status of 404 (Not Found)函数postCall。但是,这也意味着它本身会返回一个async,如果您想访问结果,还必须等待它。

这意味着您需要确保Future函数中包含以下代码,以允许使用async关键字:

await