【问题标题】:Node.js: How can i store the jsonObj in a global variable after converting CSV to JSON by using csvtojsonNode.js:使用 csvtojson 将 CSV 转换为 JSON 后,如何将 jsonObj 存储在全局变量中
【发布时间】:2018-05-19 19:40:56
【问题描述】:

我想将 jsonObj 存储在全局变量中。但是,它不起作用。

var jsonContent;

csvConverter.on("end_parsed", function(jsonObj){
//   console.log(jsonObj);
       jsonContent = jsonObj;
});

console.log(jsonContent);

jsonObj 可以在 {...} 中正确打印。但是为什么我不能将它传递给全局变量呢? “console.log(jsonContent);”的结果仍然未定义。

undefined

【问题讨论】:

    标签: javascript json node.js csv


    【解决方案1】:

    jsonContent 是全局的,因为它在您的 JS 文件中随处可用。问题是csvConverter.on异步,所以它不会在程序运行时阻塞程序。因此,在csvConverter.on 运行其回调之前,您将无法使用jsonContent

    如果您需要使用jsonObj,则必须在您对csvConcerter 的回调运行后使用它。为此,您可以简单地将逻辑包装在一个函数中,并在调用回调后运行该函数:

    var jsonContent;
    
    csvConverter.on("end_parsed", function(jsonObj){
      jsonContent = jsonObj;
      runLogic();
    });
    
    function runLogic() {
      // this function will run after csvConverter.on callback is called
      console.log(jsonContent);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 2017-04-18
      • 2012-02-09
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 2013-05-25
      相关资源
      最近更新 更多