【问题标题】:Access variable inside function and block访问函数和块内的变量
【发布时间】:2018-06-28 12:14:25
【问题描述】:
我正在玩一些 nodeJs 的东西,我读到了关于块和函数的挖掘,但我无法访问我的变量 jsonArrayObj:
csv({delimiter: [' ']})
.fromFile(csvFilePath)
.on('end_parsed', function(jsonArrayObj) {
console.log(jsonArrayObj);
function cssResult() {
return jsonArrayObj;
}
})
.on('error', (err) => {
console.log(err);
});
console.log('jsonArrayObj'); // I want to print the results here also
【问题讨论】:
标签:
node.js
function
scope
【解决方案1】:
你可以这样做。
csv({delimiter: [' ']})
.fromFile(csvFilePath)
.on('end_parsed', function(jsonArrayObj) {
console.log(jsonArrayObj);
myNewFunc(jsonArrayObj);
function cssResult() {
return jsonArrayObj;
}
})
.on('error', (err)=>{
console.log(err);
});
var myNewFunc = function(myVar){
console.log(myVar); // this will be your result
};
【解决方案2】:
您的变量 jsonArrayObj 只是在您的函数范围内定义的。所以 jsonArrayObj 只能在你的函数中访问。
如果你想在你的函数之外使用它,你必须在你的函数之外定义一个变量,然后告诉你的函数这个变量取jsonArrayObj的值。
像这样:
var myRes;
csv({delimiter: [' ']})
.fromFile(csvFilePath)
.on('end_parsed', function(jsonArrayObj) {
myRes = jsonArrayObj;
console.log(jsonArrayObj);
function cssResult() {
return jsonArrayObj;
}
})
.on('error', (err)=>{
console.log(err);
});
console.log(myRes);