我想将jsonObj存储在全局变量中。但是,它不起作用。
var jsonContent;
csvConverter.on("end_parsed", function(jsonObj){
// console.log(jsonObj);
jsonContent = jsonObj;
});
console.log(jsonContent);
jsonObj可以在{...}内部正确打印。但是为什么不能将其传递给全局变量? “ console.log(jsonContent);”的结果仍未定义。
undefined
最佳答案
jsonContent
是全局的,因为它在JS文件中的任何位置都可用。问题是csvConverter.on
是异步的,因此它在运行时不会阻塞程序。因此,在jsonContent
运行其回调之前,您将无法使用csvConverter.on
。
如果需要使用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);
}