我有一个这样的函数,它执行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');
谢谢!
答案 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
});