我正在使用 Bluebird 库做某种 QA(问题/答案)应用程序。所以这是场景:
- 用户在表格中填写一些问题的答案(例如 5 个问题)。
- 一个问题有多个可能的答案:“问题有很多答案”
- 使用node.bcrypt在数据库上对答案进行加密(bcrypt)
- 循环遍历答案时,如果用户答案匹配,则无需继续检查该问题的答案。
因此,在做同步的事情时解决这个问题是一个常见的问题,但是我有点迷失了用 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
// })
})