【问题标题】: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); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-29
        • 2018-12-02
        • 2018-06-23
        • 2020-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多