Проблема получения значения из возврата функции (return) на JavaScript
Написал на днях чудную функцию:
1 2 3 4 5 6 7 8 9 10 11 12 |
function GetArrayEq(orgid){ $.get('controller/server/getjsonlisteq.php', { orgid: orgid }, function(e) { zx=JSON.parse(e); alert(zx.rows[0].id); // здесь работает!! return zx; } ); }; var arz=GetArrayEq($("#sel_orgid :selected").val()); alert(arz.rows[0].id); // А здесь не работает!! |
и долго вдумчиво смотрел грустными глазами, пытаясь понять, «А почему же она ничего не возвращает». Забыл,я воспитанник TurboPascal, что часть функций JavaScript, работает асинхронно. А конкретно здесь $.get() — асинхронная функция. Т.е. встречая её, интерпретатор выделяет под нее отдельный поток, а сам «идет дальше», по основному коду. Т.е чтоб получить результат выполнения функции , нам необходимо отловить окончание её выполнения. Таким образом данный код некорректен в корне,а его автор мудак.