0

私は Node.JS で開発しており、これらの関数を JavaScript で記述しています。

MySqlBl.prototype.getUser = function (email, onGetUserCompleted, onGetUserError) {
    this.execQuery("CALL spGetUser('" + email + "')", onGetUserError, onDone);

    function onDone(rows) {        
        if (typeof rows[0][0] != 'undefined') {
            var row = rows[0][0];           
                console.log('1: ', row.First_Name);
                console.log('2: ', row.Last_Name);
            getUserObject(row.User_ID, row.Email, row.First_Name, row.Last_Name);
        }
    }
};

function getUserObject(userID, email, firstName, lastName) {
   console.log('3: ' + firstName);
   console.log('4: ' + lastName);
}

私が得ている出力は次のとおりです。

1: Lien
2: Dang
3: undefined
4: undefined

行の値を正しく送信できないのはなぜですか?

4

1 に答える 1

1

多分それはスコープの問題です。このような別の変数を使用する場合:

function onDone(rows) {        
    if (typeof rows[0][0] != 'undefined') {
        var row = rows[0][0];           
            console.log('1: ', row.First_Name);
            console.log('2: ', row.Last_Name);
        var first = row.First_Name, last = row.Last_Name;
        getUserObject(row.User_ID, row.Email,first, last);
    }
}

それは動作しますか ?(たとえそれが機能していても、それは答えではありません。探し続けることをお勧めします)。

于 2013-10-15T16:13:12.317 に答える