Вопрос

Я ищу обходной путь для получения метода поиска Google для возврата результатов обратного вызова, а не undefined.

$.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() будет явно не вернуть ничего, скорее вы передаете код, который должен быть выполнен с результатом этого вызова в качестве обратного вызова.Не имеет смысла вернуть что-то из этого обратного вызова.

Другие советы

Вы можете попробовать использовать Обещание объектов. Шаблон обещания позволяет вам делать асинхронные вещи, но все же поддерживать более линейный поток.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top