2012-02-27 79 views
1

我正在尋找一種解決方法,讓谷歌搜索方法返回回調的結果,而不是未定義的。谷歌地方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 2012-02-27 08:39:24

0

您可以嘗試使用promise對象。 諾言模式可以讓你做異步的東西,但仍然保持更線性的流量。