var bcrypt = require('bcryptjs');
var password = "Bacon";
var securePassword;
bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash(bacon, salt, function(err, hash) {
        securePassword = hash
    });
});
console.log(securePassword)


由于异步,此返回未定义。如何将哈希值存储在变量securePassword中?

最佳答案

您将哈希值存储在正确的securePassword回调函数中的bcrypt.hash中。但是由于这是一个回调函数,您的console.log将在分配securePassword之前执行。

解决方案是在该回调句柄中执行逻辑。

您也可以使用其他方法,例如Promise来解决它,您可以从MDN阅读更多内容



var bcrypt = require('bcryptjs');
var password = "Bacon";
var securePassword;
bcrypt.genSalt(10, function(err, salt) {
    bcrypt.hash(bacon, salt, function(err, hash) {
        securePassword = hash
        dologic()
        //console.log(securePassword)
        //or have a function with this statement
    });
});
function dologic(){
console.log(securePassword)
}

关于javascript - 如何将异步返回值保存在变量中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47290712/

10-09 14:41