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

回到顶部