关于.Then和.catch的问题
是否可以触发.Then和.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和CATCH被触发。怎么可能?
then.data [object SequelizeInstance:user]
catch Error: passport.initialize() middleware not in use
解决方案
感谢您的帮助。我按如下方式更改了代码:
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=TRUE 捕获错误:passport.initialize()中间件未在使用我们已完成.Then并再次捕获,尽管来自Verify的";true";和if";if也返回了";true。
相关文章