我真的需要你的帮助。我有一些不正常的 javascript 代码,我相信它与基于此问题的答案的范围和时间有关。
我对javascript编程相当陌生,所以我并不像我想要的那样精通。我一直在查看我的代码,但我似乎无法弄清楚我的问题出在哪里。
function getCurrentAddress(marker) {
currentAddress = "Address: ";
geocoder.geocode({'latLng':marker.getPosition()}, function(results,status) {
console.log(results[1]);
if (status == google.maps.GeocoderStatus.OK) {
if (results[1])
currentAddress += results[1].formatted_address;
console.log(currentAddress);
} else {
currentAddress = "Geocoder failed due to: " + status;
}
});
console.log(currentAddress);
return currentAddress;
}
我的问题在于,当我第一次查询contactAddress
变量时,它会从地理编码的结果中返回格式化的地址。但是,当在contactAddress
返回之前查询 时,该值仅仅是默认值"Address: "
。
此外,当我检查页面时,返回上方的语句发生在地理编码结果之前。我的函数在调用内部匿名函数之前是否返回?如果是这样,我该如何解决?
我尝试将 return 语句移动到地理编码函数中,但所做的只是阻止我的 InfoWindows 出于某种原因打开。
我试图制作一个 jsfiddle 来帮助你们看看我在做什么,但它从来没有完全正确,但在这里它都是一样的http://jsfiddle.net/pxv2c/
感谢你们提供的任何帮助。