我正在尝试使用这个简单的函数返回用户名,但它不起作用。我的异步就是为什么它会返回undefined
。那么从stdout
返回价值的最佳方式是什么?
function User() {
exec('whoami',function (error, stdout, stderr) {
return stdout;
});
}
有一个节点模块execSync,但它不适用于生产机器。
答案 0 :(得分:1)
您将从异步回调中返回一个值,该值不起作用。您需要将回调传递给User()
:
function User(cb) {
exec('whoami',function (error, stdout, stderr) {
if (error)
return cb(error);
cb(null, stdout);
});
}
答案 1 :(得分:1)
使用以下,
var exec = require('child_process').exec;
function User(cmd, callback) {
exec(cmd, function (error, stdout) {
return callback(null, stdout);
});
}
User('whoami', function(err, callback){
console.log(callback);
});