我正在开发一个密码管理器 webapp,它使用 Parvez Anandam 的 pbkdf2.js 生成密钥(即将文本密码转换为适合 AES 的 256 位密钥)。我正在使用该项目来学习咖啡脚本。我无法从回调中获取数据。这是我的代码:
keygen = (password, salt, iterations) ->
key = 1
pbkdf = new PBKDF2 password, salt, iterations, size_in_bytes
pbkdf.deriveKey ((p) ->), ((k) ->
key = k
console.log "within callback " + key
)
console.log "straight line path " + key
由于deriveKey 立即返回,我没有数据——最后一行打印“1”。处理这个问题的正确方法是什么?在 java 中,我希望得到一个类似 Future 的对象,我可以加入或等待,但我意识到我的后端习惯可能不适合 UI 代码。我应该从继续加密并提交表单的回调中调用“继续”函数吗?