0

对于每个请求可能需要一两秒钟的应用程序,是否可以在事件循环的每次迭代中只处理一段操作代码?例如:

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 会自动开始处理队列中的下一个事件吗?

4

2 回答 2

1

如果时间花在 IO 上,node 的非阻塞模型会自动处理并发。

如果它没有花费在 IO 中,那么您使用 process.nextTick 来推迟代码的执行是正确的,以便其他请求有待处理的更改。这是一个很好的写法:

http://howtonode.org/understanding-process-next-tick

于 2013-04-23T20:23:50.383 回答
1

您的假设是正确的,您应该将工作划分为更小的执行块,并使用process.nextTick. 需要在下一个订单号执行的所有其他计划事件将在您的所需执行块之前处理。

于 2013-04-23T21:04:21.750 回答