9

我正在使用Node.js来循环浏览最终可能大量帖子的内容。

如果我使用客户端 JavaScript做类似的事情,我会使用这里解释的计时器,以免阻塞线程。

我的问题是:“仍然是一个健全的实践服务器端?” 或“我应该以不同的方式解决问题吗?”

4

3 回答 3

14

在 node.js 中执行此操作的正确方法是将您的工作分解为块,并process.nextTick在当前块完成后用于将下一个块排队。这样,您就可以在每个工作块之间执行其他排队的回调。

更新:从 Node.js 0.10 开始,setImmediate通常应该使用而不是process.nextTick用于此目的,因为setImmediate会产生事件循环以确保 I/O 不会被饿死,但process.nextTick不会。

于 2012-10-08T00:34:41.993 回答
1

JohnnyHK 的建议是有效的。当任务可以稍后完成时(即:添加到队列中),我会考虑网络工作者。

于 2012-10-08T00:54:24.177 回答
-2

看看异步库。它提供了常用收集方法(map、filter、each...)的异步版本。AFAIK,异步处理您的数组不会阻塞其他进程或用户。

于 2012-10-08T13:49:22.530 回答