前几篇中,我们了解过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: