不要等待function完成

可能重复:
node.js中的“产生线程”行为

我怎样才能使我的代码继续而不用等待大量的操作来完成?

var foo = function() { var i = 1000000000; while (i > 0) { i--; } }; console.log("start"); foo(); console.log("end"); 

编辑这不是为web开发。 我正在使用node.js

node.js ,你可以使用process.nextTick()来做到这一点。 它将延迟执行长时间运行的任务,直到事件循环的下一个传递。

 var foo = function() { var i = 1000000000; while (i > 0) { i--; } }; console.log("start"); process.nextTick(foo()); console.log("end"); 

请记住,这将允许这个请求立即返回,它仍然会阻止线程,当它最终被执行。 Node.js不适用于长时间运行的CPU密集型任务,它针对大量轻量级连接进行了优化。

如果您需要在节点上执行CPU密集型工作,您应该查看作业队列(如kue或任何其他pub / sub实现),将作业放在队列中,第二个node.js进程可以监听新作业并执行他们进来。

这将允许您的主节点进程快速处理新的请求,并允许一些后台节点进程处理所有这些长时间运行的作业。