web-dev-qa-db-ja.com

TypeError:cbは関数ではありません-コールバックあり

データベースからユーザーのリストを取得しようとしています。これが完了したら、これらのユーザーをリストしたいと思います。コールバックを使用しようとしましたが、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));
6
user6002037

の代わりに:

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

使用する:

checkForUsers('users',getAllUsers);

強調された理由:

変数のように関数を渡し、それらを関数で返し、他の関数で使用できます。コールバック関数を引数として別の関数に渡す場合、関数定義のみを渡します。パラメータで関数を実行していません。つまり、関数を実行しているときのように、実行括弧()の末尾のペアで関数を渡していません。

ソース

6
Ofir Baruch