0

unable to fetch data outside after reading data form csv its store in array in end part it will print data but outside not print why?

const csv = require('csv-parser');
const fs = require('fs');
var filepath = "StateCensusData.csv";
var dataArr = [];
class StateCensusAnalyzer {
readCsv() {
        fs.createReadStream(filepath)
            .pipe(csv({}))
            .on('data', (data) => dataArr.push({
                state: data.State,
                population: data.Population,
                AreaInSqKm: data.AreaInSqKm,
                DensityPerSqKm: data.DensityPerSqKm
            }))
            .on('end', () => {
                console.table(dataArr); // printin data
            })
    } 
}
let sca = new StateCensusAnalyzer();
sca.readCsv();
console.table(dataArr); // printing empty
  • It is because Outside of the function executes simultaneously with the readCSV() method. JavaScript is synchronous, in order to make it print you should use promise or async-await or depend on some libraries like RxJS. – Anglesvar Dec 14 '20 at 07:25
  • can u write and share code which return array outside also able access – mr_pradip01 Dec 15 '20 at 08:13

0 Answers0