NodeJs的BCrypt包hash()和hashSync()函数的区别

Difference between hash() and hashSync() functions of BCrypt package of NodeJs

const bcrypt = require('bcrypt')

const hash = bcrypt.hash(<myPassword>, 12)

const hashSync = bcrypt.hashSync(<myPasword>, 12)

它们在哪些方面可能不同,它们可以互换使用吗? (非常欢迎详细解释,非常感谢!)

bcrypt.hash 将回调作为其第三个参数,将在哈希完成时调用。 bcrypt.hashSync 运行散列,等待它完成并 returns 散列值。

换句话说,“hash”是异步的,而 hashSync 是同步的。

你是说

const bcrypt = require('bcrypt')

const hash = bcrypt.hash(<myPassword>, 12) // this returns a promise 

const hashSync = bcrypt.hashSync(<myPasword>, 12) //this on is sync so it stops every line of code after untill it's executed

阅读this文章了解同步和异步的区别

hashSync 用于同步生成给定字符串的哈希。它 returns 哈希字符串

hash 用于为给定字符串异步生成哈希。 returns 承诺回调已提交,您需要解决承诺。

refer https://www.npmjs.com/package/bcryptjs#hashsyncs-salt