我一直在努力与一个promise功能,试图找出为什么它无法解决的几个小时。在某个时候,我被引导去研究猫鼬的问题,但在其他地方似乎做对了,所以我对此表示怀疑。
以下功能似乎卡住的部分位于user.save()
。它获取哈希密码,创建模型(通过日志记录进行确认),然后尝试返回user.save()
Promise(这是猫鼬模型,它具有一个save()
函数,该函数返回Promise),但是我不确定之后是否会发生任何事情。我已经在return user.save()
许诺之后同时登录了then / catch和它们都没有被调用。 createUser
返回的承诺永远无法解决。
我希望我能对下面的内容有更多的了解,看看我可能在哪里没有正确编写此诺言链,否则我会偏离我原来的理论,那是猫鼬问题。
module.exports = {
createUser: function () {
const password = Faker.internet.password()
return Passwords
.hash(password)
.then((hashedPassword) => {
const user = new UserModel({
firstName: Faker.name.firstName(),
lastName: Faker.name.lastName(),
username: Faker.internet.userName(),
email: Faker.internet.email(),
displayName: 'bs',
passwordHash: hashedPassword
})
return user.save()
})
.then(doc => ([doc, password]))
}
}
还有密码类:
class Passwords {
hash (password) {
return new Promise(function (resolve, reject) {
try {
resolve(bcrypt.hashSync(password, BCRYPT_SALT_ROUNDS))
} catch (err) {
console.error(err)
reject(err)
}
})
}
}