我试图将此函数的输出返回到一个变量中,以便在另一个函数中使用,但该变量返回为未定义的。我做错什么了?
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;
});
}
var message = run("ls");
sendMessage(user, message);
最佳答案
run
函数是异步的(因为spawn
是异步的)。传递结果的最简单方法是提供回调函数,当结果位于以下位置时调用该函数:
function run(cmd, cb) {
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) {
cb(result);
});
}
run("ls", function(message) {
sendMessage(user, message);
});
关于node.js - 将生成的stdout结果作为字符串变量存储在Node.js中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15516254/