【发布时间】:2017-08-06 18:44:11
【问题描述】:
我一直在关注 Node.js 教程。我一直怀疑数据是如何传递给回调函数参数的。举个例子
User.addUser(newUser, (err, user) =>{
if(err){
res.json({success: false, msg:'Failed to register new user'});
} else {
res.json({success: true, msg:'User registered'});
}
});
addUser 函数定义为,
module.exports.addUser = function(newUser, callback){
bcrypt.genSalt(10, (err,salt)=>{
bcrypt.hash(newUser.password, salt, (err, hash) => {
if(err) throw err;
newUser.password = hash;
newUser.save(callback);
});
});
}
我不明白 err 和 user 是如何传递的。有人可以解释一下吗?
【问题讨论】:
-
他们不是从这里传过来的。它们是从
newUser.save内部传递的。您只是将callback传递给该函数,该函数可能最终会调用它。 -
快速看这里return a value from closure to main method,它是用于php的,但我认为它是相同的逻辑
标签: javascript node.js