【发布时间】:2012-09-18 06:17:22
【问题描述】:
我有以下代码:
/*
* converts a string to geolocation and returns it
*/
function stringToLatLng(string){
if(typeof string == "string"){
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': string}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log("LatLng: "+results[0].geometry.location);
return results[0].geometry.location;
} else {
console.log("Geocode was not successful for the following reason: " + status);
}
});
}
}
LatLng 将正确的位置打印到控制台,但是当我写这个时:
var pos = stringToLatLng('New York');
console.log(pos);
我收到undefined 回复。这是为什么?谢谢
【问题讨论】:
-
因为
.geocode是异步的 -
为什么在这种情况下意味着?我的意思是 LatLng 已正确打印到控制台......那我该如何修复它?我的意思是,我怎么能“等待”直到结果准备好?
-
您无需等待 - 将所有适用于结果的代码放入回调中,就像您对
console.log所做的那样
标签: javascript google-maps-api-3