goMap / Jquery - 在Google地图完成地理编码检查之前停止状态检查以获取空白响应

时间:2011-02-01 23:48:38

标签: jquery google-maps

我一直在为GoMap Google Map库添加一些自定义函数,但遇到了一个问题,我想检查一个地址是否有效,但我的外部函数在不等待实际响应的情况下继续运行。

在GoMap代码中我创建了这个函数:

checkAddressExists: function(options){

        address = options.address;
        geocoder.geocode( { 'address': address}, function(results, status) {

        if (status == google.maps.GeocoderStatus.OK) {
              return true;  
              } else {
                return false;
              }
            });

此函数可以正常工作并返回true或false。

但是,在我的外部Javascript文件中,如果我执行以下操作:

var foo = $.goMap.checkAddressExists({address: address});

Foo仍未定义,即在决定是真还是假之前不等待响应。

我试过这个,但没有得到任何回报:

$.goMap.checkAddressExists({address: address}, function(response){
    alert(response);
});

有没有办法让它暂停等待来自库的正确响应 - 或者只是GoMap库没有设置为提供响应?

我知道这可能是一个特定于GoMap的问题,但是如果我错过了一个基本的Jquery概念,那值得一提。

1 个答案:

答案 0 :(得分:0)

没有

AJAX是异步的,不会等待服务器回复 在不冻结浏览器的情况下,无法等待服务器进行回复。

jQuery 1.5的Deferred Objects可以使这更容易使用。