0

ケース: function2 が終了していないため、2 つの関数 function1 が不完全なデータを返します。

Var db; // connection to first database
Var db2; // connection to other database
Var user;
Function1 = function(user_id) { 
  Db.query("SELECT variable1 FROM tbl_db WHERE user_id = '"+ user_id +"'").success(function(response) {
    user.id = user_id;
    user.v1 = variable1;
    console.log(user); // log1
    var variables = function2(variable1, user_id);
    console.log(variables); //  log2
    user.x = variables.x;
    user.y = variables.y;

    console.log(user); // log3
    return user;
  });
}
function2 = function(val, user_id) {
  // connection to other database
  Db2.query("SELECT x,y FROM tbl_db2 WHERE val = '"+ val +"' AND user_id = '"+ user_id +"' ").success(function(response) {
    console.log(response); // log4
    return response;
  });
}

// start
function1(123);

//log1 variable
//log2 undefined
//log3 not correct user
//log4 variable2

そして、私は必要です

//log1 variable
//log4 variable2
//log2 variable2
//log3 correct user

私の機能の何が問題になっていますか? 非同期について読みましたが、最初の関数が次の関数のパラメーターとして変数を送信した場所を例にすることはできません。

4

1 に答える 1