Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.03.2013, 00:43
Аспирант
Отправить личное сообщение для Neznayka Посмотреть профиль Найти все сообщения от Neznayka
 
Регистрация: 08.03.2013
Сообщений: 37

Возврат результата функции в функцие
Добрый день.
function a(param)
{
   var result = 0;

   if(param)
     result = param * 2; 

   var obj_1 = document.getElemetnById("obj_1");
   obj_1.onload = function()
   {
        result = this.value * 2;
   }
   return result; //Вот здесь нужно вернуть то, что вернула функция обработчика события obj_1.onload 
}

Подскажите пожалуйста как вернуть результат функции-обработчика события в функцие ? Заранее благодарен за ответ.

Последний раз редактировалось Neznayka, 08.03.2013 в 00:46. Причина: Опечатался
Ответить с цитированием
  #2 (permalink)  
Старый 08.03.2013, 00:55
Аватар для zOdmin
Аспирант
Отправить личное сообщение для zOdmin Посмотреть профиль Найти все сообщения от zOdmin
 
Регистрация: 05.03.2012
Сообщений: 62

Как ты себе это представляешь?
Результат функции-обработчика возникает в момент события.
А результат функции "a" - по факту вызова.
Причем, управление не перейдет к обработчику события, пока текущая функция не завершится, даже если событие уже произошло, пока функция работала.
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2013, 01:22
Аспирант
Отправить личное сообщение для Neznayka Посмотреть профиль Найти все сообщения от Neznayka
 
Регистрация: 08.03.2013
Сообщений: 37

Вот так представляю :
function a(link)
{
     var result = new Array;
	
     if (!link)
         return result;

     req = XMLHttpRequest();


     req.onload = function()
     {
          if (req.readyState == 4) 
	    {	
	           result = JSON.parse(req.responseText);
	    }	
      };
      req.open("GET", link, true);
      req.send(null);
	
      return result; //Вот здесь нужно вернуть то, что вернула функция обработчика события req.onload
}

Замыкание какое-то должно быть, или не знаю как правильно называется, но думаю что способ какой-то есть.

Последний раз редактировалось Neznayka, 08.03.2013 в 01:29. Причина: добавил
Ответить с цитированием
  #4 (permalink)  
Старый 08.03.2013, 02:03
Аспирант
Отправить личное сообщение для Neznayka Посмотреть профиль Найти все сообщения от Neznayka
 
Регистрация: 08.03.2013
Сообщений: 37

Сообщение от Дзен-трансгуманист
либо одним из аргументов передавать асинхронный коллбэк.
Вот пожалуй то, что надо... Спасибо !

Последний раз редактировалось Neznayka, 08.03.2013 в 02:05.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возврат результата DeUM AJAX и COMET 0 27.02.2013 18:52
Определения существования анимации и возврат функции Beriagts jQuery 2 20.09.2011 21:32
Массив, созданый в функцие не доступен нигде кроме тела функции Flirer Общие вопросы Javascript 1 07.05.2011 20:19
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
Возврат результата функции через её параметр x-yuri Оффтопик 11 16.04.2010 11:52