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_A(時間を節約するために)ajax呼び出しが行われるように、両方をcall_B次々と作成したいと思います。

call_A関数ヘッダーを変更するオプションがないcall_Bため、成功コールバック関数を指定してこれらの関数を呼び出す必要があります。

私が望むのは、2 つの ajax 呼び出しのどちらが最初に終了するかに関係なく、B は A のデータに依存するため、success_A前に呼び出されることです。success_B

これを行う最善の方法は何ですか?

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 に答える