前几篇中,我们了解过execFile,spawn、exec几种创建子进程的方法。它们所创建的子进程,都是异步的。

而有时候,需要同步的执行,即:希望得到它们的执行结果,再继续运行程序。那么该如何实现呢?

1、execFileSync

它是execFile的同步方法,使用方法如下:

var ex = require("child_process").execFileSync;

var stdout = ex("ping",["www.jshaman.com"]).toString();
console.log(stdout);

执行结果:

2、spawnSync

它是spawn的同步方法,使用代码:

var ex = require("child_process").spawnSync;

var stdout = ex("ping",["www.jshaman.com"]).stdout.toString();
console.log(stdout);

注意这里,与上面不同:

执行结果:

3、execSync

同步,不再赘述。测试代码:

var ex = require("child_process").execSync;

var stdout = ex("dir").toString();
console.log(stdout);

执行效果:

注意,这里不能使用ping了,因为它不是一个command: