我遇到了一段代码,而不仅仅是复制并粘贴它,我想了解它实际上是如何工作的。
大多数基本教程似乎都没有解决回调函数的语法(或者我只是不理解它们)。我有一个例子是来自passportjs.p
passport.use(new Strategy(
function(username, password, cb) {
db.users.findByUsername(username, function(err, user) {
if (err) { return cb(err); }
if (!user) { return cb(null, false); }
if (user.password != password) { return cb(null, false); }
return cb(null, user);
});
}));
我想知道的是'cb'是该函数的参数,在这种情况下,返回cb(null,user)的实际含义是什么?这是否意味着要使用参数null和user执行回调函数(对我而言这没有意义)。
答案 0 :(得分:1)
我相信此评论是针对此问题的答案,我将其作为答案
函数是JavaScript中的一等成员,因此可以将它们分配给变量,作为其他函数的参数传递,也可以从函数中返回。这类似于您可以对数字或其他对象执行的操作。 可以通过在末尾添加()来执行存储在变量中的函数。例如,如果以(param1,param2,param3)执行其他参数,也可以将其他参数传递给函数。在您的情况下,cb拥有对该函数的引用,因此使用(空,用户)调用该函数将执行该函数并传递这些参数
积分:VLAZ