2017-02-01 9 views
0

Я пытаюсь получить список пользователей из базы данных, и когда это будет завершено, я хочу перечислить этих пользователей. Я пытался использовать функцию обратного вызова, но получаю сообщение об ошибке, что TypeError: cb is not a functionТипError: cb не является функцией - с обратным вызовом

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

Попытка: checkForUsers ('users', getAllUsers); –

+0

ah ok, that works –

+0

Было бы хорошо, если я добавлю его в качестве ответа? –

ответ

0

Вместо:

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

Использование:

checkForUsers('users',getAllUsers); 

Причина подчеркнул:

We can pass functions around like variables and return them in functions and use them in other functions. When we pass a callback function as an argument to another function, we are only passing the function definition. We are not executing the function in the parameter. In other words, we aren’t passing the function with the trailing pair of executing parenthesis() like we do when we are executing a function.

Source