我正在尝试通过谷歌地图javascript api获取位置坐标,这是异步发生的。
这是我的检索功能:
function getCoords(input_address)
{
var geocoder = new google.maps.Geocoder();
var addr = {
address: input_address
};
var callback = function(result, status)
{
if (status == "OK") {
var coords = result[0]['geometry']['location'];
console.log(coords.toUrlValue());
}
};
geocoder.geocode(addr,callback);
}
我想通过ajax函数提交坐标和表单的其余部分。
但是,测试以下内容:
form.submit(function(event){
event.preventDefault();
var addr = $("input[type='text']").val();
getCoords(addr);
console.log('should wait');
});
输出:
should wait
coordinates
有没有办法确保getCoords
函数在执行下一条指令之前完成?
答案 0 :(得分:1)
为此目的使用回调函数,在执行geocoder.geocode();
之后执行其他工作
function getCoords(input_address){
......
......
geocoder.geocode(addr, function (){
doYourJobNow(); //as suggested by tgun926
});
}
function doYourJobNow(){
console.log('should wait');
}
//result would be
//coordinates
//should wait