Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么回调函数的第一个参数为null?_Javascript_Function_Authentication - Fatal编程技术网

Javascript 为什么回调函数的第一个参数为null?

Javascript 为什么回调函数的第一个参数为null?,javascript,function,authentication,Javascript,Function,Authentication,我读了所有我能找到的东西,但我仍然不明白这一点 Passportjs身份验证(Twitter) 为什么err回调只有一个参数,而第二个帐户回调也有空参数?done在这段代码中也是一个回调函数,它符合一个称为 定义错误优先回调实际上只有两条规则: 回调的第一个参数是为错误对象保留的。如果发生错误,第一个err参数将返回该错误 回调的第二个参数是为任何成功的响应数据保留的。如果没有发生错误,err将设置为null,并且任何成功的数据都将在第二个参数中返回 因此,当发生错误时,done将使用单个

我读了所有我能找到的东西,但我仍然不明白这一点

Passportjs身份验证(Twitter)


为什么err回调只有一个参数,而第二个帐户回调也有空参数?

done
在这段代码中也是一个回调函数,它符合一个称为

定义错误优先回调实际上只有两条规则:

  • 回调的第一个参数是为错误对象保留的。如果发生错误,第一个err参数将返回该错误
  • 回调的第二个参数是为任何成功的响应数据保留的。如果没有发生错误,err将设置为null,并且任何成功的数据都将在第二个参数中返回

因此,当发生错误时,
done
将使用单个参数(错误)调用。当没有错误发生时,
done
用两个参数调用。第一个参数为null(无错误),第二个参数是成功响应的详细信息。

我假设第一个参数是错误(如果有)。但是,您必须检查文档以确保“只有一个”的err回调“一个什么?”在NodeJS回调中有“error first”回调约定。第一个参数总是一个错误,nullotherwise@CristianTraìna Arugment,将进行编辑。此问题缺乏背景。由于该函数是匿名的,因此它很可能作为参数传递给其他对象。这个“其他东西”是您跳过的一个重要细节。
function(token, tokenSecret, profile, done) {
    Account.findOne({ domain: 'twitter.com', uid: profile.id }, function(err, account) {
      if (err) { return done(err); }
      if (account) { return done(null, account); }