Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как правильно вернуть значение из функции
acerrusm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 139
Пользователь №: 39635
На форуме: 2 года, 6 месяцев, 24 дня
Карма:




Привет. Пытаюсь реализовать свой 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);
}


Что я делаю не так?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 5 дней
Карма: 444




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

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

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


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

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

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

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
acerrusm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 139
Пользователь №: 39635
На форуме: 2 года, 6 месяцев, 24 дня
Карма:




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

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

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

Я использую google maps api для поиска города, и там эта функция (service.getQueryPredictions) как раз и выдает список стран. Ну похоже гугол не посчитал нужным, что бы она что то возвращала. Похоже буду другой сервис использовать smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
bestxp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



орангутанг
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2004
Пользователь №: 36605
На форуме: 3 года, 9 месяцев, 23 дня
Карма: 112




а ты уверен что там нет асинхронного вызова ?
при асинхронном js там скорее promise нужны или callback что бы передать данные, простым return ты не отделаешься)


--------------------
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
acerrusm  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 139
Пользователь №: 39635
На форуме: 2 года, 6 месяцев, 24 дня
Карма:




Цитата (bestxp @ 4.04.2016 - 08:03)
а ты уверен что там нет асинхронного вызова ?
при асинхронном js там скорее promise нужны или callback что бы передать данные, простым return ты не отделаешься)

Да фиг его знает. Я решил отказаться от google maps api. У них так оказывается еще и лимит на кол.во бесплатных запросов стоит. К тому же я не нашел то, что мне было нужно, а именно по названию города получать только страну и никаких лишних данных. А то начинаю набирать "Уфа" и мне выходят "Уфа город", "Уфагаз",.. huh.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса