关于.then和.catch的问题



是否可以触发.then AND.catch?

这是我的脚本:

passport.use(new BasicStrategy( (username, password, callback) => {
User.findOne({where: { username: username }})
.then(function (data) {
if(data === null) { 
console.log("then.false"); 
callback(null, false);};
var verify = data.verifyPassword(password);
if(verify === true) { 
console.log("then.data "+ data); 
callback(null, data); 
} 
callback(null, false);
})
.catch( err => {
console.log('catch  '+ err);
callback(null, false);
})
})
);

这里是我的控制台,正如我们所看到的,然后和catch被触发。这怎么可能?

then.data [object SequelizeInstance:user]
catch  Error: passport.initialize() middleware not in use

如果findOnethen内部的任何东西抛出/拒绝,它们将调用链接的catch。最有可能的是,您的两个callback()调用中有一个调用抛出了错误。

感谢您的帮助。我把代码改成这样:
passport.use(new BasicStrategy( (username, password, callback) => {
User.findOne({where: { username: username }})
.then(function (data) {
var verify = data.verifyPassword(password);
if(verify == true) { console.log("VERIFY = " + verify); callback(null, data); } 
}
)
.catch( err => {
console.log('catch  '+ err);
callback(null, false);
}
)
}
));

我的控制台结果是:

VERIFY=真catch错误:passport.initialize((中间件未使用

我们完成了。然后,尽管有一个";真";来自verify;如果";返回";也是如此。

最新更新