javascript使用另一个函数返回

时间:2013-03-05 16:51:23

标签: javascript variables scope hoisting

我有一个函数A,它使用函数B里面,我想在函数A中使用函数B的返回变量,但它总是给我一个未经分解的...

我在网上搜索了很多答案,但我变得无望。

事先提前

function initialize() {
  geocoder = new google.maps.Geocoder();


    var latlng = new google.maps.LatLng(40.714352, -74.005973);

    ....

    }
    map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
    **latlng=codeAddress("lisboa")**;


  }

功能代码地址(a){

    geocoder.geocode( { 'address': a}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {

      latlong=results[0].geometry.location;

        alert(latlong);
        return latlong;

      } else {
        alert('Geocode was not successful for the following reason: ' + status);
      }
    });

1 个答案:

答案 0 :(得分:0)

您需要使用回调来处理结果:

function initialize() {
    .... // your code
codeAddress(function(res){
    alert(res);
});         


function codeAddress(callback) {
      var latlng = new google.maps.LatLng(40.714352, -74.005973);
      geocoder.geocode({'latLng': latlng}, function(res, sta) {
      if (sta== google.maps.GeocoderStatus.OK) 
      {
        if (res[1]) 
            callback(res[1].formatted_address);
        else 
            alert("Nothing found");
      }

  });
}
}