我正在寻找一种变通方法,让谷歌搜索方法返回回调结果,而不是未定义的结果。
$.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
这是不可能的。回调函数在稍后某个未定义的时间点显式执行,异步。对$.find_places_nearby()
的调用将显式地不返回任何内容,而是传递应该以该调用的结果作为回调执行的代码。从回调中返回一些内容是没有意义的。
您可以尝试使用promise对象。promise模式允许您执行异步操作,但仍然保持更线性的流程。