【发布时间】:2016-09-03 23:53:34
【问题描述】:
我花了一些时间研究Node Bcrypt 以及它们如何实现以下异步执行:
bcrypt.hash(myPlaintextPassword, saltRounds, function(err, hash) {
// Store hash in your password DB.
});
他们正在使用异步回调执行计算量大的任务(盐生成)。他们是如何在不阻塞主 Node IO 线程的情况下做到这一点的?
我已经阅读了有关 process.nextTick() 的信息,但这似乎与 setTimeout() 类似,您将 CPU 负载分配到一个线程上(延迟了 piper 的支付)。然后是 childProcess.fork(),但我认为他们没有使用它,因为我在 GitHub repo 的任何地方都找不到它。
此外,您还拥有诸如 Monk 之类的库,可以实现:
users.find({ name: 'Loki' }, '-bigdata').then(function () {
// exclude bigdata field
})
在这个repo 的任何地方也没有出现fork()。我认为为了让 Monk 卸载这种处理,需要一个明确的进程分支,而不是某种递归异步回调。
我正在尝试在我的应用程序中实现这种异步操作,但想了解专业人员是如何做到的。有谁知道实现这一目标?
【问题讨论】:
标签: javascript node.js multithreading asynchronous child-process