【发布时间】:2018-04-12 12:16:49
【问题描述】:
我正在尝试将加密库中现有的基于回调的函数转换为在上面的方法中与 es6 async/await 一起使用。每当我调用generateSubkey(password,salt) 时,它都会返回[function]。如果我调用toString(),它会在其中显示我的方法代码,而不是执行它。
import crypto from 'crypto';
import Promise from 'bluebird';
async hashPassword(password) {
try {
// Create a salt with cryptographically secure method.
let salt = await crypto.randomBytes(16);
let subkey = await this.generateSubkey(password, salt);
console.log(subkey);
} catch (e) {
}
}
generateSubkey(password, salt) {
return new Promise.resolve((resolve, reject) => {
return crypto.pbkdf2(password, salt, 10000, 32, 'sha256', (err, buffer) => {
if (err) {
reject();
}
resolve(buffer);
});
})
}
【问题讨论】:
-
您正在返回
new Promise.resolve(),它会立即解决 Promise。解析值将是您的承诺功能。
标签: javascript ecmascript-6 promise es6-promise