我有一个函数可以执行一些操作,然后使用回调进行ajax调用;我不想让那个ajax调用同步。我需要的是:
function theFunctionToCall(){
//do stuff
$.post('ajax.php',data, function(){
//mycallback;
})
}
execute(theFunctionToCall, function(){
//code to execute after the callback from theFunctionToCall is complete
})
这甚至可能吗?如何?
谢谢
答案 0 :(得分:1)
您可以使用jQuery的.queue()
来按指定的顺序运行函数调用。
$(document).queue('AJAX', function(next){
$.post('ajax.php',data, function(){
// Callback...
next(); // Runs the next function in the queue
});
});
$(document).queue('AJAX', function(next){
// This will run after the POST and its callback is done
next(); // Runs the next function, or does nothing if the queue is empty
});
$(document).dequeue('AJAX'); // Runs the 1st function in the queue
答案 1 :(得分:1)
让你的函数接受一个参数来传递回调函数:
function theFunctionToCall(data, fn) {
$.post('ajax.php', data, fn);
}
虽然我没有看到试图让其他函数委托哪些ajax方法传递哪些回调的特殊优势。
答案 2 :(得分:1)
function execute(first, callbackFn) {
first.call(null, callbackFn);
}
function theFunctionToCall(callbackFn){
//do stuff
$.post('ajax.php',data, callbackFn)
}
execute(theFunctionToCall, function(){
//code to execute after the callback from theFunctionToCall is complete
})