谷歌放置了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

这是不可能的。回调函数在稍后某个未定义的时间点显式执行,异步。对$.find_places_nearby()的调用将显式地不返回任何内容,而是传递应该以该调用的结果作为回调执行的代码。从回调中返回一些内容是没有意义的。

您可以尝试使用promise对象。promise模式允许您执行异步操作,但仍然保持更线性的流程。

最新更新