gpt4 book ai didi

javascript - 如何在 coffeescript(或 javascript)中等待回调?

转载 作者:行者123 更新时间:2023-11-30 13:28:37 25 4
gpt4 key购买 nike

我正在开发一个密码管理器网络应用程序,它使用 Parvez Anandam 的 pbkdf2.js 进行 key 生成(即将文本密码转换为适用于 AES 的 256 位 key )。我正在使用该项目来学习 coffeescript。我无法从回调中获取数据。这是我的代码:

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 代码。我是否应该从回调中调用“继续”函数以进行加密并提交表单?

最佳答案

通常的方法是发送异步任务完成时可以调用的回调函数。像这样:

keygen = (password, salt, iterations, finished) ->
key = 1
pbkdf = new PBKDF2 password, salt, iterations, size_in_bytes
pbkdf.deriveKey ((p) ->), ((k) ->
key = k
console.log "within callback " + key
finished key
)
console.log "straight line path " + key

因此,当您调用 keygen 时,您将提供 finished 函数,而 finished 将在 可用。您的finished 通常是一个匿名闭包。

如果您查看任何 AJAX 库(例如 jQuery),您会看到很多此类内容:您将函数传递给函数,函数一直向下传递。

关于javascript - 如何在 coffeescript(或 javascript)中等待回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7593424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com