2011-03-15 2 views
0
<script type="text/javascript"> 
    var geo = new GClientGeocoder(); 

    function showAddress() { 
    var search = document.getElementById("search").value; 
    // getLocations has not ret, so wtf! 
    geo.getLocations(search, function (result) { (result.Status.code == 200) ? alert(result.Placemark[0].Point.coordinates) : alert(result.Status.code); }); 
    }</script> 

getLocations()는 값을 반환하지 않으므로 콜백의 ret 값이 필요합니다. 어떻게해야합니까?내가 사용하는 result() 콜백 함수에서 반환 값을 잡아낼 수 있습니까?

답변

2

수 없습니다. result 값이 필요한 코드가 콜백에서 실행되는 방식으로 코드를 작성해야합니다.

function drawPlacemarks(marks) { 
    // do fancy stuff with the results 
    alert(marks[0].Point.coordinates); 
} 

function getAddress(callback) { 
    var search = document.getElementById("search").value; 
    geo.getLocations(search, function (result) { 
     if(result.Status.code == 200) { 
      // pass the result to the callback 
      callback(result.Placemark); 
     } 
    }); 
} 

getAddress(drawPlacemarks); 
:

예 (난 그냥 나에게을 논리적 보이는 방법으로 기능을 이름)

관련 문제