2013-08-06 4 views
-2

Я пытаюсь просто получить ответ от вызова jQuery $ .get() и сохранить его в переменной. Это оказалось намного сложнее, чем я думал. Вот мой код:Изменение переменных из анонимной функции в javascript

var response; 
    $.get(("action.php?action=addFolder&folderName=" + input), 
     function(data, status){ 
      response = data 
     } 
    ); 
return response; 

Но ответ всегда неопределен или нулевым. Как я могу это исправить?

ответ

5

Это потому, что ajax является асинхронным. Это означает, что ajaxcall все еще делает свое дело, и вы все уже возвращаете «ответ».

Если вам нужно «отклик» для чего-то (что я вроде как), сделайте что-нибудь с ним в неполной части ajaxcall. Функция, которую вы используете в get, - это функция, которая вызывает триггер oncomplete.

Для уточнения асинхронной немного больше для тех, кто не знает, что я имею в виду *:

Вы создаете переменную «ответ». После этого запускается ajax. После этого вы его возвращаете. Важным в этом списке является то, что возвращается после ajax STARTS. Если ajax займет 5 секунд, переменная будет иметь ее значение через 5 секунд.

* это simplefied

Смежные вопросы