Javascript 返回未定义的Google geocode函数

Javascript 返回未定义的Google geocode函数,javascript,function,api,geocode,Javascript,Function,Api,Geocode,在第9行,我试图从getCoordinates()记录返回对象。但是,由于某些原因,它显示为未定义。我认为该函数的工作原理与预期相同,因为如果我在return语句上方添加了“console.log(results);”,它将按预期记录result对象 function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 15, center: {la

在第9行,我试图从getCoordinates()记录返回对象。但是,由于某些原因,它显示为未定义。我认为该函数的工作原理与预期相同,因为如果我在return语句上方添加了“console.log(results);”,它将按预期记录result对象

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
  zoom: 15,
  center: {lat: 24.149950, lng: 120.638610},
  mapId: '63d22d3ae6cf15ff'
  });

  console.log(getCoordinates("Bouverie Street"));
}

// geocoder
function getCoordinates(address) {
    const geocoder = new google.maps.Geocoder();
  geocoder.geocode({address: address}, (results, status) => {
    if (status === 'OK') {
        return results[0].geometry.location;
    } else {
        alert("Geocode error: " + status);
        console.log(("Geocode error: " + status));
    }
  });
}

我做错了什么?提前感谢。

出现了一个异步问题。为了消除这种情况(在本例中,您正在打印纬度和经度),您可以在调用
getCoordinates
函数时传递回调参数

在这里,我将使用以下脚本作为示例:


因此,用您自己的替换如下:


因此,这里我将向
getCoordinates
函数传递一个回调参数,该函数将以以下方式打印从
getCoordinates
传递的坐标:

函数initMap(){
const map=new google.maps.map(document.getElementById(“map”){
缩放:15,
中心:{lat:24.149950,lng:120.638610},
mapId:'63d22d3ae6cf15ff'
});
获取坐标(“Bouverie Street”,打印位置);
}
函数printLocation(位置){
控制台日志(“位置”);
console.log(location.lat());
console.log(location.lng());
}
//地理编码器
函数getCoordinates(地址,myCallback){
const geocoder=新的google.maps.geocoder();
geocoder.geocode({address:address},(结果,状态)=>{
如果(状态=='OK'){
myCallback(结果[0].geometry.location);
}否则{
console.warn=()=>{};//停止打印警告
日志((“地理代码错误:+状态”);
}
});
}
#地图{
高度:400px;
宽度:100%;
}

这是一个不会返回的回调
if (status === 'OK') {
        return results[0].geometry.location;
    }