Node.js中的长循环:使用定时器产生?

我使用Node.js循环通过最终可能是一个相当的职位数组

如果我正在使用客户端JavaScript做类似的事情,我会按照这里所说的使用定时器,以免阻塞线程。

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

在node.js中这样做的正确方法是将工作分解成块,然后使用process.nextTick在当前块完成之后排队下一个块。 这样,您可以在每个工作块之间执行其他排队的callback。

更新 :从Node.js 0.10起, setImmediate通常应该用来代替process.nextTick ,因为setImmediate产生了事件循环来确保I / O没有被饿死,但是process.nextTick没有。

JohnnyHK的build议是有效的。 我会考虑networking工作者什么时候可以完成任务(即:添加到队列中)。

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