Javascript 如何延迟多个ajax成功回调?
在我的Javascript中,我有以下场景:Javascript 如何延迟多个ajax成功回调?,javascript,ajax,callback,synchronization,Javascript,Ajax,Callback,Synchronization,在我的Javascript中,我有以下场景: call_A(success_A) call_B(success_B) function call_A(success){ // make ajax request success(result) } function call_B(success){ //make ajax request success(result) } function success_A(){ //set data to be used by success
call_A(success_A)
call_B(success_B)
function call_A(success){
// make ajax request
success(result)
}
function call_B(success){
//make ajax request
success(result)
}
function success_A(){
//set data to be used by success_B
}
function success_B(){
..do some stuff
}
我想一个接一个地进行call_A
和call_B
以便进行ajax调用(以节省时间)
我没有更改call_A
和call_B
函数头的选项,因此必须指定成功回调函数来调用这些函数
我想要的是,无论两个ajax调用中哪一个先完成,我都希望success\u A
在success\u B
之前被调用,因为B取决于A的数据
完成此任务的最佳方法是什么?您可以使用jQuery吗?它有一个$.Deferred类,它为这样的情况添加了大量语法糖。此外,您可能应该将示例代码重写为JavaScript。def不是定义javascript函数的方法,因此它使您的问题有点困惑。
a_success= false;
b_success= false;
call_A(generalSuccess);
call_B(generalSuccess);
function call_A(success) {
// make ajax request
a_success = true;
success(result)
}
function call_B(success) {
//make ajax request
b_success = true;
success(result)
}
function generalSuccess() {
//assuming you are passing which a or b is called. set b_success or a_success is true
if (a_success == true && b_success == true) {
// use all variables you need and get the final result
} else if (a_success == true) {
// set your desired value into a global variable from a request
} else if (b_success == true) {
// set results to use from b request.
}
}