我是Node js的新手,我的目标是3秒,一次要在csv文件中打印行数,但是当我尝试使用for循环打印时,它将给出错误的结果,因此总是将0打印为行数,请指导我要解决此问题,我认为节点js不能逐行执行,执行过程有所不同。我的代码在下面
在我的程序中,最初读取最新文件并加载csv文件并找到行数,但是节点js从最后一行开始执行,因此将行数设为0
var fs = require('fs'),
path = require('path'),
_ = require('underscore');
function getMostRecentFileName(dir)
{
var files = fs.readdirSync(dir);
return _.max(files, function (f)
{
var fullpath = path.join(dir, f);
return fs.statSync(fullpath).ctime;
});
}
var dirname="";
var file="";
var fl=0;
const csv = require('fast-csv');
var RCnt=0;
function file_data()
{
dirname=getMostRecentFileName("C:\\Users\\muniy\\OneDrive\\Desktop\\Data\\Log");
file="C:\\Users\\muniy\\OneDrive\\Desktop\\Data\\Log\\"+dirname;
fs.createReadStream(file)
.pipe(csv())
.on('data', (row) => {
RCnt++;
console.log(row[2]);
})
.on('end', () => {
console.log('File Processed');
});
}
for(fl=0;fl<3;fl++)
{
setTimeout(file_data, 3000);
console.log(RCnt);
}
该文件包含12行,但始终打印为0