如何从Node.js中的exec函数获取变量

时间:2014-02-27 00:34:34

标签: javascript node.js express

我需要在w1的{​​{1}}函数之外使用变量h1exec的值。

console.log

exec(command, function(err, stdout, stderr) { var resolution = stdout.split("x"); w1 = resolution[0]; h1 = resolution[1]; }); console.log(w1 + " - " + h1); 显示变量的正确值,但在显示此错误列表之前:

console.log

我发现了类似的问题,但不适合我。 How can we access variable from callback function in node.js?

谢谢。

1 个答案:

答案 0 :(得分:1)

这里有两个问题:

问题1 - 因为您尚未在函数范围之外定义这些变量,所以它们仅在该范围内可用。您需要首先将它们定义为范围之外的变量 - 当您在函数内部设置它们时,它们将在函数外部可用。

问题2 - 您尝试在设置之前记录变量。当您调用exec时,您传递的回调将在exec完成时异步运行。然后,在回调运行之前,脚本将继续运行到console.log。这意味着无论如何,这些变量都将是未定义的,除非您先前明确定义它们。这使得问题1基本上没有实际意义。

在不了解您的意图的情况下,我认为这就是您应该做的事情:

exec(command, function(err, stdout, stderr) {

    var resolution = stdout.split("x");
    w1 = resolution[0];
    h1 = resolution[1];
    console.log(w1 + '-' + h1);


});