【发布时间】:2021-11-27 16:24:59
【问题描述】:
我是 Javascript 和 NodeJS 的新手。我试图在对它们进行一些处理之前读取多个 CSV 文件。我当前的问题是,当我运行代码时,它会在文件读取完成之前尝试执行处理。我想在开始对它们进行任何处理之前加载这两个 CSV。
能否解释一下为什么会发生这种情况以及如何在 Javascript/NodeJS 中解决问题。
function readCSV(path){
var events = []
fs.createReadStream(path).pipe(csv()).on('data', (row) => {
events.push(row);
}).on('end', () => {
console.log('CSV file successfully processed. Length: ' + events.length);
});
return events
}
function app(){
var file_list = listFiles(folder_path);
for (let i = 0; i < file_list.length; i++) {
const file = file_list[i];
var events = readCSV(file)
}
processCSV(events) // Some processing
}
app();
任何帮助都会很棒,任何关于我如何控制代码执行时间的解释将不胜感激。
【问题讨论】:
标签: javascript node.js csv asynchronous fs