Node.js:编写一个函数以将spawn stdout作为字符串返回
我试图以字符串形式返回此函数的输出,但它始终以未定义的形式返回。我要去哪里错了?
function run(cmd){ var spawn = require('child_process').spawn;
var command = spawn(cmd);
var result = '';
command.stdout.on('data', function(data) {
result += data.toString();
});
command.on('close', function(code) {
return result;
});
}
console.log(run('ls'));
回答:
您的函数在command.on
语句后立即返回。事件return
回调中的语句将close
返回无处。在return
所属的事件的回调,而不是run()
。
放console.log
电话代替return result
。
一般来说,您应该编写如下内容:
function run(cmd, callback) { var spawn = require('child_process').spawn;
var command = spawn(cmd);
var result = '';
command.stdout.on('data', function(data) {
result += data.toString();
});
command.on('close', function(code) {
return callback(result);
});
}
run("ls", function(result) { console.log(result) });
以上是 Node.js:编写一个函数以将spawn stdout作为字符串返回 的全部内容, 来源链接: utcz.com/qa/426826.html