访问函数和块内的变量

时间:2018-01-19 09:35:02

标签: node.js function scope

我正在玩一些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

2 个答案:

答案 0 :(得分: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
};

答案 1 :(得分:0)

您的变量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);