我对此还比较陌生,还没有完全了解这一切的原理...
基本上我正在使用csvtojson函数将csv文件转换为json。 这样可以正常工作,并将json数组输出到console.log。
执行此操作后,我想获取返回的json数组并对其进行一些其他操作,例如输出到文件。
我的问题是如何在创建函数的函数之外使用数组,或者应该在函数内编写代码?
这是我的代码:
const csvFilePath='./test.csv'
const csv=require('csvtojson')
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
console.log(jsonObj);
//should I write code here
});
console.log(jsonObj);
//This returns jsonObj is not defined
//how do I/Can I read jsonObj here
有人可以帮我了解我在这里需要做什么吗?
答案 0 :(得分:0)
因为csv()
函数是异步的,并且返回Promise
对象。您可以在.then()
函数内部读取该值。
解释器如何查看代码:
// Create a variable and store a data inside
const csvFilePath='./test.csv'
// Create a variable and store a data inside
const csv=require('csvtojson')
// Call the function csv().fromFile(csvFilePath), because it's asynchronous
// deal with the result later
csv()
.fromFile(csvFilePath)
.then((jsonObj)=>{
console.log(jsonObj);
});
// Display the content of the variable jsonObj
// jsonObj is not declared, display 'undefined'
console.log(jsonObj);
// Leave the current function
一段时间后
// Execute the .then function
.then((jsonObj)=>{
// Display the content of the variable jsonObj
console.log(jsonObj);
});
这是一个演示代码段
const asynchronousFunction = () => new Promise((resolve) =>
setTimeout(() => resolve('asynchronous'), 1000));
const ret = 'not initialized';
asynchronousFunction()
.then((ret) => {
console.log(ret);
});
console.log(ret);