从javascript函数获取返回值

时间:2010-12-02 07:20:33

标签: jquery return-value

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请求对象。我只想要一个简单的号码返回。

2 个答案:

答案 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()返回时运行。该函数必须将结果放在其他地方,以便以后可以检索。