Javascript 以函数为参数的问题,求大神指点!
 //由坐标获取地名
    function getAddress(lng,lat) {
        var point = new BMap.Point(lng,lat);
        var gc = new BMap.Geocoder(); 
        var address = null;
         gc.getLocation(point, function(rs) {
            var addComp = rs.addressComponents;
            address = addComp.province+addComp.city + addComp.district + addComp.street + addComp.streetNumber;
            alert(address);
        }); 
        alert(address);
    }

    gc.getLocation中的address有值,而外部的address却为null,为什么?百思不得其解.

1个回答

异步的,没有执行address = addComp.province+a。。。这句都已经执行你最后的alert语句了,你要得到正确的地址得以回掉形式来调用

   function getAddress(lng,lat,callback) {
        var point = new BMap.Point(lng,lat);
        var gc = new BMap.Geocoder(); 
        var address = null;
         gc.getLocation(point, function(rs) {
            var addComp = rs.addressComponents;
            address = addComp.province+addComp.city + addComp.district + addComp.street + addComp.streetNumber;
            callback(address);//////////////
        }); 
        //alert(address);
    }

        getAddress('xxxxxxx','xxxxxxx',function(addr){
        alert(addr)
        })
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐