我正在使用Bluebird库开发一种QA(问题/答案)应用程序。以下是情景:
1. 用户填写包含若干个问题的表单(例如5个问题)。 2. 一个问题可能有多个答案:“问题有多个答案”。 3. 答案在数据库中使用node.bcrypt加密。 4. 循环遍历答案时,如果用户的答案匹配,则无需继续检查该问题的答案。
因此,这是在同步操作中解决常见问题,但我在使用Promise进行异步操作时有些困惑。
以下是一个示例,我不知道如何继续进行:
1. 用户填写包含若干个问题的表单(例如5个问题)。 2. 一个问题可能有多个答案:“问题有多个答案”。 3. 答案在数据库中使用node.bcrypt加密。 4. 循环遍历答案时,如果用户的答案匹配,则无需继续检查该问题的答案。
因此,这是在同步操作中解决常见问题,但我在使用Promise进行异步操作时有些困惑。
以下是一个示例,我不知道如何继续进行:
.then(function(answers) {
var compare = Promise.promisify(bcrypt.compare);
// foreach answer, I need to check like this
// compare(answer.password, user.password).then(function(match){
// if (match) break; <-- something like this
// })
})
(if hash == password) break;
之前,您可能需要单独获取加密答案。 - tymeJV