1

我正在寻找一种让谷歌搜索方法返回回调结果而不是未定义的解决方法。

$.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

4

2 回答 2

0

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

于 2012-02-27T06:23:21.507 回答
0

您可以尝试使用承诺对象。Promise 模式可以让你做异步的事情,但仍然保持更线性的流程。

于 2012-11-21T07:46:33.347 回答