我正在使用 Node.js循环浏览最终可能是一个相当大数组的帖子。
如果我使用 客户端 JavaScript 做类似的事情,我会使用计时器 as explained here以免阻塞线程。
我的问题是:“服务器端仍然是一个健全的练习吗?”或“我应该以不同的方式解决问题吗?”
最佳答案
在 node.js 中执行此操作的正确方法是将您的工作分成 block 并使用 process.nextTick
当前一个 block 完成后将下一个 block 排队。这样一来,您就可以在每个工作 block 之间执行其他排队的回调。
更新:从 Node.js 0.10 开始,setImmediate
通常应该使用而不是 process.nextTick
来实现此目的,因为 setImmediate
会屈服于事件循环以确保 I/O 不会被饿死,而是 process. nextTick
没有。
关于javascript - Node.js 中的长循环 : Yielding Using Timers?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12774035/