javascript函数返回数据

时间:2010-09-25 18:03:29

标签: javascript jquery function

我有一个这样的函数,它执行ajax调用以从数据库中获取一些数据。

    function db (content) {
        $.post('/ajax/db.php', { 
           operation:operation,
           content:content
        }, function(data)
        {
            console.log(data);
            return data;
        });
    }

console.log(data);为我提供了我想要的数据。

但是,如何将data传递给函数db,以便我可以执行以下操作:

var returnedData = db ('content');

谢谢!

1 个答案:

答案 0 :(得分:9)

AJAX操作是异步的,因此直接返回它不是一个选项,除非你使它同步(这会锁定浏览器)。相反,您应该将数据传递给回调中的下一个函数,如下所示:

function db (content) {
    $.post('/ajax/db.php', { 
       operation:operation,
       content:content
    }, function(data)
    {   
        nextFunction(data);
    });
}

或者让它进行回调,这样你可以传递将获得数据的函数,当它准备就绪时,像这样:

function db (content, callback) {
    $.post('/ajax/db.php', { 
       operation:operation,
       content:content
    }, callback);
}

然后调用它提供回调函数,例如:

db('content', function(data) { 
  //do something with data
});