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/