[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно вернуть значение из функции
acerrusm
Привет. Пытаюсь реализовать свой autocomplete стран с помощью Google Maps API. Нужно что бы (initService('Moscow')) возвращал объекты с данными стран. Но вместо этого я получаю undefined. Хотя переменная predictions содержит все нужные объекты.


console.log((initService('Moscow'))); // возвращает undefined

function initService(vall) {
var displaySuggestions = function (predictions, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
alert(status);
return;
}

console.log(predictions); // возвращает несколько объектов

return predictions;
};

var service = new google.maps.places.AutocompleteService();
return service.getQueryPredictions({ input: vall }, displaySuggestions);
}


Что я делаю не так?
sergeiss
Цитата (acerrusm @ 2.04.2016 - 14:03)
Хотя переменная predictions содержит все нужные объекты.

Она-то может и содержит, но из функции initService() ты возвращаешь результат выполнения некой функции service.getQueryPredictions. Значит, она у тебя возвращает что-то не то.

Единственный вариант что-то сделать - это дебажить. Благо дело, браузеры дают такую возможность. Идешь пошагово и смотришь, что получаешь.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
acerrusm
Цитата (sergeiss @ 2.04.2016 - 21:16)
Цитата (acerrusm @ 2.04.2016 - 14:03)
Хотя переменная predictions содержит все нужные объекты.

Она-то может и содержит, но из функции initService() ты возвращаешь результат выполнения некой функции service.getQueryPredictions. Значит, она у тебя возвращает что-то не то.

Единственный вариант что-то сделать - это дебажить. Благо дело, браузеры дают такую возможность. Идешь пошагово и смотришь, что получаешь.

Я использую google maps api для поиска города, и там эта функция (service.getQueryPredictions) как раз и выдает список стран. Ну похоже гугол не посчитал нужным, что бы она что то возвращала. Похоже буду другой сервис использовать smile.gif
bestxp
а ты уверен что там нет асинхронного вызова ?
при асинхронном js там скорее promise нужны или callback что бы передать данные, простым return ты не отделаешься)
acerrusm
Цитата (bestxp @ 4.04.2016 - 08:03)
а ты уверен что там нет асинхронного вызова ?
при асинхронном js там скорее promise нужны или callback что бы передать данные, простым return ты не отделаешься)

Да фиг его знает. Я решил отказаться от google maps api. У них так оказывается еще и лимит на кол.во бесплатных запросов стоит. К тому же я не нашел то, что мне было нужно, а именно по названию города получать только страну и никаких лишних данных. А то начинаю набирать "Уфа" и мне выходят "Уфа город", "Уфагаз",.. huh.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.