在节点中,我使用child_process运行perl脚本,并且回调中的console.log似乎表现得很奇怪。
child = exec("perl " + validationScript,
{cwd: myDir},
function(err, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
return cb(err);
});
stdout正确打印,但stderr print语句未执行。 (如果我注释掉stdout打印,则正确打印stderr)。那么一些缓冲问题呢?如何让它们正确打印?
我是异步编程的新手,很抱歉,如果这个问题太基础了。
答案 0 :(得分:1)
child = exec('ls aa',
function(err, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
cb(err);
});
function cb(data) {
console.log(data);
}