0

在我的 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_B
}

function success_B(){
..do some stuff
}

我想一个接一个地进行call_Acall_B以便进行ajax调用(以节省时间)。

我没有更改函数头的选项call_Acall_B因此必须指定成功回调函数来调用这些函数。

我想要的是,无论 2 个 ajax 调用中的哪一个先完成,我都希望success_A在之前被调用success_B,因为 B 取决于 A 的数据。

完成这项工作的最佳方法是什么?

4

1 回答 1

0
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.
    }
}
于 2013-05-15T16:40:20.343 回答