Ich versuche, den Callback-Parameter zu einer Funktion optional zu machen. Wenn ein Callback übergeben wird, senden Sie den Wert an die Callback-Funktion, ansonsten geben Sie einfach den Wert zurück. Wenn ich den Callback weglasse, bekomme ich undefined zurück.Callback (Obj) ausführen, wenn Rückruf vorhanden ist Sonst Rückgabeobjekt
getByUsername = function(user_name, cb){
async.waterfall([
//Acquire SQL connection from pool
function(callback){
sql_pool.acquire(function(err, connection){
callback(err, connection);
});
},
//Verify credentials against database
function(connection, callback){
var sql = 'SELECT * FROM ?? WHERE ?? = ?';
var inserts = ['users','user_name', user_name];
sql = mysql.format(sql,inserts);
connection.query(sql, function(err, results) {
sql_pool.release(connection);
callback(err, results);
});
},
//Create user object
function(results, callback) {
if(results.length < 1){
if(cb){
cb(null);
} else {
return null;
}
}else {
var thisUser = new User(results[0]);
if(cb){
cb(thisUser);
} else {
return thisUser;
}
}
}], function (err, results) {
throw new Error('errrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrroooooorrrrrrrr');
}
)
}
Also, was ist die Frage? –
haha. Es tut uns leid. Es funktioniert nicht richtig. Ich bekomme Rückruf nicht definiert. –
Es sollte etwas offensichtlich sein. Sehen Sie sich den Namen der Argumente an. Warum würden Sie den Rückruf auch anrufen, wenn er null ist? –