解释函数和回调函数

时间:2019-05-22 11:54:32

标签: javascript node.js

我遇到了一段代码,而不仅仅是复制并粘贴它,我想了解它实际上是如何工作的。

大多数基本教程似乎都没有解决回调函数的语法(或者我只是不理解它们)。我有一个例子是来自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执行回调函数(对我而言这没有意义)。

1 个答案:

答案 0 :(得分:1)

我相信此评论是针对此问题的答案,我将其作为答案

函数是JavaScript中的一等成员,因此可以将它们分配给变量,作为其他函数的参数传递,也可以从函数中返回。这类似于您可以对数字或其他对象执行的操作。  可以通过在末尾添加()来执行存储在变量中的函数。例如,如果以(param1,param2,param3)执行其他参数,也可以将其他参数传递给函数。在您的情况下,cb拥有对该函数的引用,因此使用(空,用户)调用该函数将执行该函数并传递这些参数

积分:VLAZ