データベースからユーザーのリストを取得しようとしています。これが完了したら、これらのユーザーをリストしたいと思います。コールバックを使用しようとしましたが、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));
の代わりに:
checkForUsers('users',getAllUsers(users));
使用する:
checkForUsers('users',getAllUsers);
強調された理由:
変数のように関数を渡し、それらを関数で返し、他の関数で使用できます。コールバック関数を引数として別の関数に渡す場合、関数定義のみを渡します。パラメータで関数を実行していません。つまり、関数を実行しているときのように、実行括弧()の末尾のペアで関数を渡していません。