谷歌地图的地理编码
问题描述:
你好我有如下Return address from Google Maps Geocoder v3相同probem,我不明白怎么我的全局变量设置为返回vlaue谷歌地图的地理编码
我得到这个在其中b返回undefined此刻
var a;
var b;
function outputGeo(result){
b = result;
}
geocoder.geocode({'latLng': event.latLng},function(results, status) {
a = results[1].formatted_address;
outputGeo(a);
});
alert(b);
答
geocoder.geocode
是一个异步函数,因为它执行JSONP请求。换句话说,在结果返回之前,alert(b)
行已被调用。您需要在outputGeo(a)
之后将该alert
行放入回调函数中。
Javascript是一种有趣的语言。直到我研究了JSONP和Javascript的同步之前,这个异步的事情让我感到困扰。我建议你这样做。了解这一点的好方法是编写一个你自己的JSONP请求包装器。 (只是一个想法。)