【发布时间】:2013-04-24 05:04:21
【问题描述】:
对于每个请求可能需要一两秒的应用程序,是否可以在事件循环的每次迭代中只处理一段可操作的代码? 例如:
function foo()
{
...operative code...
...start processing the next event here...
...continue with foo() here....
}
会是这样吗?
function foo()
{
...operative code...
process.nextTick(function() {
...continue with foo() here...
});
}
如果这样做,Node 会自动开始处理队列中的下一个事件吗?
【问题讨论】:
-
你的操作代码是基于IO的吗?通常当我有东西运行一两秒时,主要是 IO 时间。如果是这种情况,则节点将自动处理并发,因为它的 IO 模型是非阻塞的。
-
@tilleryj 假设它不是基于 IO 的,有没有办法跳转到下一个事件并稍后返回继续处理?
-
@tilleryj 我意识到非 IO 函数需要大量代码才能花费一秒钟以上。但我真的只是想了解事件循环是如何工作的,以及我对它有多少控制权。
标签: javascript node.js callback eventqueue