function get_new_project_id() {
function subFunction() {
$.ajax({
url: 'includes/ajax.php?request=create_untitled_project',
success: function(response) {
return response; // result is a number like 19
}
});
}
return subFunction();
};
var resultnumber = get_new_project_id();
这可能是最基本的问题之一......为什么结果是19?我怎么能这样做它可以从函数返回一个HTML或文本值?有时我得到xmlhttp请求对象。我只想要一个简单的号码返回。
答案 0 :(得分:2)
这是因为success
函数是异步执行的,因为它是一个AJAX调用。因此,在AJAX回调中返回一个值是没有意义的,因为它可以在包含函数返回后执行很多。
为了解决这个问题,你需要在成功函数中操作结果,因为它们只在那里可用:
function subFunction() {
$.ajax({
url: 'includes/ajax.php?request=create_untitled_project',
success: function(response) {
doSomethingWithTheResult(response);
}
});
return 'AJAX request initiated but results will be available later';
}
答案 1 :(得分:2)
“AJAX”中的第一个“A”代表"Asynchronous"。内部函数尚未在get_new_project_id()
返回时运行。该函数必须将结果放在其他地方,以便以后可以检索。