Flutter Future 总是 return null

Flutter Future always return null

我的代码有什么问题总是 returns null

getLocation().then((r)  {
                          if (r != null) {
                            print("r=" + r.length.toString());
                          } else {
                            print("result is null");
                          } 
                        });



Future< List<double>> getLocation() async {
   // print("getLocation called");
      location = new Location();
    List<double> result=[];

      location.getLocation().then((loc) {

      result.add(loc.latitude);
      result.add(loc.longitude);
      result.add(4213);
      //  print(loc.latitude.toString() + "," + loc.longitude.toString() +"  l="+l1.length.toString());
      return result;

    }).catchError((e){
      return result;
    });
  }

您没有在函数中返回任何内容,仅在 then 回调中返回。 由于无论如何您都在使用异步语法,因此您可以选择:

Future< List<double>> getLocation() async {
  location = new Location();
  List<double> result=[];

  var loc = await location.getLocation();
  result.add(loc.latitude);
  result.add(loc.longitude);
  result.add(4213);
  return result;
}

我已经从代码中删除了错误处理,但如果需要,您可以只使用 try-catch。