在Flutter中,如何在嵌套异步函数中完成Future之后返回对象?

时间:2019-03-10 07:26:57

标签: asynchronous dart flutter async-await future

我有一个函数,该函数调用其他各种返回Future的函数,并且在完成一个Future之后,调用另一种返回Future的方法,最后我需要返回一个值作为变量,但是问题是该函数返回NULL而不是值。

_getLocationPermission()等待并获得所需的权限,我必须等到获得许可后才获得许可,我必须致电 _getCurrentLocation(),这将返回一个Future ,我必须将此对象的数据传递给 getWeatherDetails(),它最终将返回Future ,我不知道如何在return语句中返回此字符串。

Future<String> getData() async {
String longitude, latitude, weatherDetails;
_getLocationPermission().then((permissionStatus) {
  _getCurrentLocation().then((location) async {
    longitude = location.longitude.toString();
    latitude = location.latitude.toString();
    weatherDetails = await getWeatherDetails(longitude, latitude);
    print(longitude);
  });
});

return weatherDetails;

}

谢谢!

1 个答案:

答案 0 :(得分:0)

您似乎正在从getWeatherDetails函数返回一个解析的aync响应,而不是函数返回类型所显示的Future。

<table id="myTable">
  <tr>
    <td>52</td>
    <td>52</td>
    <td>12</td>
  </tr>

</table>
<br>

<button type="button" onclick="myFunction()">Try it</button>

<p id="demo"></p>