2012-02-27 14 views
1

私は、コールバックの結果を未定義ではなく返すようにGoogle検索メソッドを取得するための回避策を探しています。例えばgoogle places APIコールバックの回避策

$.find_places_nearby = function(latitude, longitude, successCallback) { 
    var latlng, service; 
    latlng = new google.maps.LatLng(latitude, longitude); 
    service = new google.maps.places.PlacesService(document.getElementById('map')); 
    return service.search({ 
    location: latlng, 
    radius: '50', 
    }, function(results, status) { 
    return successCallback(results, status); 
    }); 
}; 

...私は

$.find_places_nearby(2.4, -100.5, function(results, status) { 
    return "callback results"; 
}); 

callback resultsの代わりはできませんundefined

答えて

0

を返すようにしたいです。コールバック関数は、未定義のある時点で、の非同期でで明示的に実行されます。 $.find_places_nearby()への呼び出しは、明示的に何も返しません。その呼び出しの結果で実行されるコードをコールバックとして渡しています。そのコールバックから何かを返すのは意味がありません。

+0

ウサギの穴の深いところを見るのは難しいです。新鮮な目に感謝します。 – brewster

0

promiseオブジェクトを試してみることができます。 promiseパターンを使用すると、非同期の処理を行うことができますが、よりリニアな流れを維持します。