TypeError:cb不是函数 - 带回调

时间:2017-02-01 14:13:36

标签: javascript mysql node.js callback

我正在尝试从数据库中获取用户列表,一旦完成,我想列出这些用户。我尝试使用回调但收到错误TypeError: cb is not a function

var getAllUsers = function(users) {
    console.log(users)
}

function checkForUsers(table, cb) {
    connection.query('SELECT * from ' + table, function(err, rows, fields) {
        if(err) console.log(err);
        for(var i = 0; i < rows.length; i++) {
            users.push({id: id});   
            if(i == (rows.length - 1)) {
                cb(users)
            } 
        }
    });
}

checkForUsers('users',getAllUsers(users));

1 个答案:

答案 0 :(得分:5)

而不是:

checkForUsers('users',getAllUsers(users));

使用:

checkForUsers('users',getAllUsers);

强调的原因是:

  

我们可以像变量一样传递函数并将它们返回   函数并在其他函数中使用它们。当我们通过回调   作为另一个函数的参数,我们只传递了   功能定义。我们没有执行该功能   参数。换句话说,我们没有传递函数   跟踪对执行括号()就像我们做的那样   执行一个功能。

<强> Source