lac*_*ass 2 javascript exit child-process node.js
在为一个简单的工具编写单元测试时,我无法获得子进程的进程退出代码require('child_process').spawn.要简化if down,请考虑使用代码35退出的简单节点命令:
SHELL> node -e "process.exit(35)" & [1] 23427 [1]+ Saída 35 node -e "process.exit(35)"
现在考虑以下文件,其中上面的命令用exec和执行spawn.目标是捕获退出代码:
SHELL> cat WTF.js
var cp = require('child_process');
cp.exec('node -e "process.exit(35);"', function(err){
console.log('child exit code (exec)', err.code);
});
cp.spawn('node', ['-e', '"process.exit(35);"']).on('exit', function(code){
console.log('child exit code (spawn)', code);
});
但是当它运行时......惊喜:
SHELL> node WTF.js child exit code (exec) 35 child exit code (spawn) 0
SHELL> node --version v6.0.0
从第二个参数中删除双引号spawn(),spawn()将自动确保参数不会因空格而意外分离等:
cp.spawn('node', ['-e', 'process.exit(35);'])
.on('exit', function(code){
console.log('child exit code (spawn)', code);
});
Run Code Online (Sandbox Code Playgroud)
否则节点将传递的(js)代码视为"process.exit(35);"(字符串文字),基本上是无操作,因此它以代码0退出.
| 归档时间: |
|
| 查看次数: |
3101 次 |
| 最近记录: |