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

> Вернуть результат выполнения функции, return result
arbuzmaster  
 ۩  [x] Дата
Цитировать сообщение

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



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 10 дней
Карма: 21




Добрый день, подскажите пожалуйста как правильно вернуть результат выполнения функции?
При таком коде возвращается пустота, которая была присвоена в начале функции.

/**
* Функция возвращает id активного плеера, если его нет, то возвращается false
* Параметры:
* ip - ip адрес устройства
* port- порт устройства 9090, при выводе устройства в сеть Интернет - может отличаться!
* id- идентификатор устройства или порядковый номер.
*/


console.log(getActivePlayerXBMC("192.168.0.18","9090","1"));
function getActivePlayerXBMC(ip,port,id)
{
var socket = new WebSocket("ws://"+ip+":"+port+"/");
var ret_result="";
//-- открываем соединение
socket.onopen = function()
{
socket.send('{"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":1}');
};
socket.onmessage=function(event)
{
var resp_arr=JSON.parse(event.data);
//console.log(resp_arr);
if (resp_arr.result==="")
{
ret_result=false;
}
else
{
//console.log(resp_arr.result[0].playerid);
ret_result=resp_arr.result[0].playerid;

}

socket.close();

};
socket.onerror = function(error)
{
ret_result=false;
};
return ret_result;
};


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

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



...Один я одинаковый...
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1731
Пользователь №: 19760
На форуме: 7 лет, 19 дней
Карма: 58




Анонимные функции внутри функции?
Я такого не встречал. Я даже затрудняюсь ответить будет ли такое работать...
Выстройте код без анонимных ф-ций.
И к тому же у вас есть два шага где ret_result может быть ничем.

if (resp_arr.result==="")
{
ret_result=false;
}

socket.onerror = function(error)
{
ret_result=false;
};

Дебаг нужен...


--------------------
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

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

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



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 3 дня
Карма: 591




Цитата (arbuzmaster @ 3.09.2016 - 16:56)
При таком коде возвращается пустота, которая была присвоена в начале функции.

совершенно верно, в момент выхода из функции значения ещё нет, оно появится по событию ответа сервера. Вернуть ты ничего не сможешь. Тебе нужно пересматривать логику, и использовать событийную модель. Например аргументом функции можно передать колбэк, который что то будет делать с полученным id.
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
 ۩  Дата
Цитировать сообщение

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



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 10 дней
Карма: 21




Всё понятно! Спасибо за ответы, буду думать дальше! wink.gif


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

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

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