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