我正在尝试从数据库中获取用户列表,一旦完成,我想列出这些用户。我尝试使用回调但收到错误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));
答案 0 :(得分:5)
而不是:
checkForUsers('users',getAllUsers(users));
使用:
checkForUsers('users',getAllUsers);
强调的原因是:
我们可以像变量一样传递函数并将它们返回 函数并在其他函数中使用它们。当我们通过回调 作为另一个函数的参数,我们只传递了 功能定义。我们没有执行该功能 参数。换句话说,我们没有传递函数 跟踪对执行括号()就像我们做的那样 执行一个功能。
<强> Source 强>