Доброе время суток, дамы и господа)
Столкнулся с очередной проблемой. Есть задача: создать функцию, возвращающую результат аяксового запроса к БД. Код примерно следующий:
function getUserInfo(id,func){
$.ajax({type: 'POST', url: "ajax.php", dataType: 'json', data: 'id='+id+'&task=getUserInfo',success: function(res)
{
func.result=res;
func();
}
});
};
function testFunc(id){
if(typeof(testFunc.result)=='undefined') {getUserInfo(id,arguments.callee);}
else return testFunc.result;
}
testFunc(1);
Проблема в том, что рекурсия на func запускается раньше, чем ей присваивается аргумент result. Т.е. testFunc() выведет result только при вторичном вызове.