我正在努力使它能够编写一个定义变量的函数,然后在另一个函数中调用该函数来给我变量。
这就是我所做的:
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
如果我需要澄清任何内容,或者如果您需要我添加任何信息,请告诉我,我会在适当的时候这样做。我四处寻找,但似乎无法得到我正在寻找的答案。任何帮助表示赞赏,谢谢!
答案 0 :(得分: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...
});
}