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 回答