【发布时间】:2015-07-08 04:50:19
【问题描述】:
我在下面发布一段代码,它是“非异步函数”
var flag = false;
function a() {
var a = 0;
for (var i = 0; i < 10000000; i++) {
a++;
}
console.log("first fun finished!");
flag = true;
};
function b() {
var a = 0;
for (var i = 0; i < 10000000; i++) {
a++;
}
console.log("second fun finished!");
};
function c() {
var a = 0;
for (var i = 0; i < 10000000; i++) {
a++;
}
console.log(a)
};
a();
b();
console.log("This should be good");
if (flag) { //Should wait for this value before c() is called
c();
console.log("third fun finished!")
}
如果我们将运行上面的示例,这应该很好,c() 函数将不得不等到 a() 和 b() 函数完成工作。我期望所有函数都应该并行运行(多线程(异步)函数)。任何人都可以帮助我如何使用nodejs实现它
【问题讨论】:
-
唯一可行的方法是通过子进程(因为它们在不同的线程中运行)
-
@KevinB 你能帮我处理任何伪问题吗?
-
我可以做点什么,但是,我从来没有真正使用过子进程,所以最好在某个地方找到一个指南。它的要点是,您将每个单独的操作包装到它自己的“应用程序”中,然后使用节点模块(内置)生成一个进程,该进程并行运行这些应用程序,直到它们结束。
-
这与从 node.js 执行 cmd line 命令并等待它完成本质上是一样的。 nodejs.org/api/child_process.html
标签: javascript node.js multithreading timer callback