Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возврат результата функции в функцие (https://javascript.ru/forum/misc/36225-vozvrat-rezultata-funkcii-v-funkcie.html)

Neznayka 08.03.2013 00:43

Возврат результата функции в функцие
 
Добрый день.
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 
}

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

zOdmin 08.03.2013 00:55

Как ты себе это представляешь?
Результат функции-обработчика возникает в момент события.
А результат функции "a" - по факту вызова.
Причем, управление не перейдет к обработчику события, пока текущая функция не завершится, даже если событие уже произошло, пока функция работала.

Neznayka 08.03.2013 01:22

Вот так представляю :
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 02:03

Цитата:

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

Вот пожалуй то, что надо... Спасибо !


Часовой пояс GMT +3, время: 00:21.