0

我正在尝试这样做,这样我就可以编写一个定义变量的函数,然后在另一个函数中调用该函数来给我变量。

这是我所做的:

function getLat(){
  navigator.geolocation.getCurrentPosition(function(lat){
    var latCoord = lat.coords.latitude;
    return latCoord;
  });
}
function getLong(){
  navigator.geolocation.getCurrentPosition(function(lon){
    var longCoord = lon.coords.latitude;
    return longCoord;
  });
}
function getImage(){
  var the_lat = getLat(),
      the_lon = getLong();
  console.log(the_lat + ' ' + the_lon);
}
getImage();

如您所见,我具有获取纬度和经度的getLat()功能。getLong()然后,getImage()我希望能够调用getLat()一个变量以将 latCoord 分配给该变量。我希望return latCoord;这样做,但我错了。

这是可能的,还是我应该以不同的方式去做?如果是这样,我可以看到一个我应该如何做的例子吗?

这是一个 jsbin http://jsbin.com/ulelix/edit

如果我需要澄清任何事情,或者如果您需要我添加任何信息,请告诉我,我会酌情这样做。我已经四处搜索,但似乎无法得到我正在寻找的答案。任何帮助表示赞赏,谢谢!

4

1 回答 1

1

navigator.geolocation.getCurrentPosition方法是异步的。undefined在执行回调之前,您的函数已经返回。

您需要将依赖于该方法响应的任何代码移动到回调中。

我建议将您的两个函数合二为一,因为回调中的纬度和经度都可用:

function getLatLng(){
    navigator.geolocation.getCurrentPosition(function(pos) {
        var lat = pos.coords.latitude,
            lng = post.coords.longitude;

        //Do stuff relying on lat/lng here...
    });
}
于 2012-06-14T19:58:07.850 回答