Promises は初めてで、この問題を解決する方法がわかりません。認証システムを実行しています。最初の呼び出しは、データベースで電子メールをチェックすることです。ユーザーが存在する場合は、パスワードを bcrypted パスワードと照合します...私はこの lib を bcrypt に使用しています: https : //npmjs.org/package/bcrypt は約束と互換性がないため、「promisify」を使用しています次の署名: compare(password, crypted_password, callback)。
これは私のコードです:
var compare = Promise.promisify(bcrypt.compare);
User.findByEmail(email)
.then(compare()) <--- here is the problem
これは私の findByEmail メソッドです:
User.prototype.findByEmail = function(email) {
var resolver = Promise.pending();
knex('users')
.where({'email': email})
.select()
.then(function(user) {
if (_.isEmpty(user)) { resolver.reject('User not found'); }
resolver.fulfill(user);
});
return resolver.promise;
}
その場合、「比較」メソッドに複数の値を割り当てる方法は? 私は約束のポイントを逃していますか?