Как я могу поймать возвращаемое значение из функции обратного вызова result (), которую я использую? - PullRequest
0 голосов
/ 15 марта 2011
<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>

Мне нужно значение ret для обратного вызова, поскольку getLocations () не возвращает значений. Как я могу это сделать?

1 Ответ

2 голосов
/ 15 марта 2011

Вы не можете. Вы должны написать свой код таким образом, чтобы код, которому необходимо значение 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);
...