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;
})
};
添加回答
舉報