【发布时间】:2015-12-13 15:31:48
【问题描述】:
我曾经看过一个类似的问题,但我一生都无法弄清楚为什么这不起作用。我下面有一个非常简单的程序,它应该包装 exec 函数并返回结果。但是,它返回的所有内容都是未定义的。函数如下:
var exec = require('child_process').execSync;
quickexec = function(command) {
exec(command, function(error, stdout, stderr) {
if(error) {
return error;
} else {
return stdout;
}
});
};
我这样称呼它console.log(quickexec('echo -n $USER'));,但我每次都不确定。但是,如果我将函数中的返回更改为 console.log,它就可以工作。我认为这是一个异步问题,这就是我开始使用execSync 的原因,但它并没有改变任何东西。
【问题讨论】:
-
“我认为这是一个异步问题”。为什么你认为你必须首先传递一个回调?此外,
quickexec不包含return语句。您在寻找什么解决方案?从技术上讲,它是 How do I return the response from an asynchronous call? 的副本
标签: javascript node.js