Node.js argon2 包不会 Return 字符串
Node.js argon2 Package Will Not Return String
我正在编写一个需要密码散列的网络应用程序。我正在使用 npm 中的 argon2
包来实现这一点。
下面是我写的一个函数,它是 return 一个字符串,例如 $argon2i$v=19$m=4096,t=3,p=1$QC3esXU28vknfnOGCjIIaA$f/2PjTMgmqP1nJhK9xT0bThniCEk28vX2eY6NdqrLP8
,但是当值是 returns Promise { <pending> }
console.log(ed).
密码是:
async function hashPassword(password) {
try {
const hash = await argon2.hash(password);
return hash;
} catch {
console.log('Error');
}
}
const hashedPassword = hashPassword('password');
console.log(hashedPassword);
所以,console.log()
的输出是 Promise { <pending> }
有人可以帮我解决这个问题吗?
非常感谢。
您的代码无法正常工作,因为您试图在 Promise
解析之前获取它的值。要解决这个问题,只需等待 Promise
到 return 一个值。您可以通过更改代码以使用 then
函数 (MDN Docs link).
来做到这一点
async function hashPassword(password) {
try {
return await argon2.hash(password)
} catch {
console.log('Error');
}
}
hashPassword('password').then((hashedPassword) => {
console.log(hashedPassword);
});
调用 hashPassword() 时需要 await:
async function hashPassword(password) {
try {
const hash = await argon2.hash(password);
return hash;
} catch {
console.log('Error');
}
}
const hashedPassword = await hashPassword('password');
console.log(hashedPassword);
我正在编写一个需要密码散列的网络应用程序。我正在使用 npm 中的 argon2
包来实现这一点。
下面是我写的一个函数,它是 return 一个字符串,例如 $argon2i$v=19$m=4096,t=3,p=1$QC3esXU28vknfnOGCjIIaA$f/2PjTMgmqP1nJhK9xT0bThniCEk28vX2eY6NdqrLP8
,但是当值是 returns Promise { <pending> }
console.log(ed).
密码是:
async function hashPassword(password) {
try {
const hash = await argon2.hash(password);
return hash;
} catch {
console.log('Error');
}
}
const hashedPassword = hashPassword('password');
console.log(hashedPassword);
所以,console.log()
的输出是 Promise { <pending> }
有人可以帮我解决这个问题吗?
非常感谢。
您的代码无法正常工作,因为您试图在 Promise
解析之前获取它的值。要解决这个问题,只需等待 Promise
到 return 一个值。您可以通过更改代码以使用 then
函数 (MDN Docs link).
async function hashPassword(password) {
try {
return await argon2.hash(password)
} catch {
console.log('Error');
}
}
hashPassword('password').then((hashedPassword) => {
console.log(hashedPassword);
});
调用 hashPassword() 时需要 await:
async function hashPassword(password) {
try {
const hash = await argon2.hash(password);
return hash;
} catch {
console.log('Error');
}
}
const hashedPassword = await hashPassword('password');
console.log(hashedPassword);