1 回答
TA贡献1824条经验 获得超5个赞
我的兄弟,问题在于一个承诺只会给你返回另一个承诺,而你在那里的比较回调正如它的名字所说的回调不是承诺。让我们成为一个承诺
login(email, password) {
return userModel.findOne({
email: email
}).lean().then(function(user) {
// return user;
return new Promise((resolve, reject) => {
return bcrypt.compare(password, user.password, (err, res) => {
if (err) {
return reject(err);
}
return resolve(res);
})
};
但!!!如果您正在使用的 bcrypt 包是这个 https://www.npmjs.com/package/bcrypt 那么您不必承诺该方法,它已经将其作为承诺
login(email, password) {
return userModel.findOne({
email: email
}).lean().then(function(user) {
return bcrypt.compare(password, user.password);
}).then(isEquals => {
if (isEquals) {
return true
}
return false
}).catch(error => {
throw error;
})
};
添加回答
举报