2015-10-05 68 views
-1

我這是做地理位置JS代碼,所以我轉換地址,座標,但我不能從回調函數獲取值:Gmaps回調函數來獲取變量

$(function() { 
    var longitude; 
    var latitude; 

    GMaps.geocode({ 
     address: geolocate_address, 
     callback: function(results, status) { 
      if (status == 'OK') { 
       var latlng = results[0].geometry.location; 
       latitude = latlng.lat(); 
       longitude = latlng.lng(); 
      } 
     } 
    }); 

    console.log(latitude); 
    console.log(longitude); 
    }); 

顯示空變量。

當我在回調函數中做警報時,它顯示座標。

如何獲得該功能以外的座標?

回答

0

您的回調是異步的,在您調用console.log(latitude);時,latitude仍然沒有設置值,因爲客戶端仍在等待服務器響應。

嘗試處理後數據你接受它:

GMaps.geocode({ 
     address: geolocate_address, 
     callback: function(results, status) { 
      if (status == 'OK') { 
       var latlng = results[0].geometry.location; 
       latitude = latlng.lat(); 
       longitude = latlng.lng(); 
       handleCallback(latitude, longitude); 
      } 
     } 
    }); 

function handleCallback(latitude, longitude){ 
    console.log(latitude); 
    console.log(longitude); 
} 
+0

我試過了,但我又需要handleCallback功能之外的數據。你有解決方案嗎? – user3297094