Javascript函数范围问题

时间:2013-07-18 18:14:21

标签: javascript google-maps

我真的需要你的帮助。我有一些没有表现的javascript代码,我认为它与范围和时间有关,基于这个问题here的答案。

我对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/

谢谢你们给予的任何帮助。

0 个答案:

没有答案