我需要在w1
的{{1}}函数之外使用变量h1
和exec
的值。
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?
谢谢。
答案 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);
});