0

node.js中,如何调用函数使其在后台运行?就像是:

work = function(){
    for (var i=0; i<1000000; ++i);
    return "world!";
};

spawn(work).then(console.log);
console.log("Hello ");

应该输出你所期望的。

注意:不一定遵循这种模式。

4

3 回答 3

1

Node.JS 中的任何内容都不会“在后台”运行。这是因为 JS 不能多线程。然而,它具有背靠背运行代码的能力,例如同时运行 2 个 for 循环,将导致第一个 for 循环迭代一定数量,然后第二个将迭代,它们将交换处理能力以使其看起来好像方法可以同时运行一样。

如果我没记错的话,Node.JS 会使用回调来执行此操作。

“回调

回调是 node.js 中用于异步操作的基本习惯用法。当大多数人谈论回调时,他们指的是作为最后一个参数传递给异步函数的函数。然后使用函数产生的任何返回值或错误消息调用回调。更多详细信息,请参阅回调文章”

在这里找到更多示例和信息 -

http://docs.nodejitsu.com/articles/getting-started/control-flow/how-to-write-asynchronous-code

于 2013-05-29T15:02:55.777 回答
0

Async 是一个实用模块,它为使用异步 JavaScript https://npmjs.org/package/async提供了直接、强大的功能

于 2013-05-29T21:27:21.217 回答
0

尝试查看 child_process 功能。

我目前正在使用 child_process 来分叉进程并并行化操作。最好的部分是(与在 C 或 C++ 中工作不同),node 为您做了很多痛苦的工作。

更重要的是(附注),您可以在进程之间来回传递 JavaScript 代码,并为计算密集型任务构建强大的多 CPU、多主机和多进程应用程序。不要让负面的声音告诉你……节点很棒,它可以做你看起来在问的事情。

查看http://nodejs.org/api/child_process.html

于 2013-11-02T19:05:07.783 回答