从.on事件内部将对象推到数组上

编程入门 行业动态 更新时间:2024-10-09 14:18:39

从.on事件内<a href=https://www.elefans.com/category/jswz/34/1541946.html style=部将对象推到数组上"/>

从.on事件内部将对象推到数组上

我有一些csv数据,我需要将这些数据解析为要构建的API的对象数组。

我能够看到我正在使用的解析器正在按预期方式工作:

const csv = require('fast-csv')
const fs = require('fs');
const path = require('path');
let results = [];

async function parseCSVFromCSV(_sourceCSVFilePath){
  return new Promise((resolve, reject) => {
    fs.createReadStream(_sourceCSVFilePath)
    .pipe(csv.parse({ headers: true }))
    .on('error', error => reject(error)) 
    .on('data', row => {
      console.log(row);
      results.push(row);
    })
    resolve(results);
  })
}

因此console.log(row)将按预期方式打印出已解析的对象,但结果对象为空。我需要此解析后的数据,但是无论我如何尝试,都无法获得使用解析后的csv填充的结果。

关于我在这里缺少什么的任何指导?

回答如下:

所以我知道了我需要做什么:

const fs = require('fs');
const path = require('path');
const csv = require('fast-csv');

async function getData(){
    let arrOfObj = [];

    fs.createReadStream(path.resolve(__dirname, 'downloads', 'sampleData.csv'))
    .pipe(csv.parse({ headers: true }))
    .on('error', error => console.error(error))
    .on('data', row => 
        {arrOfObj.push(row); 
        //console.log(row);
    })
    .on('end', rowCount => { printData(arrOfObj);  
    });
}

async function printData(_arrOfObj){
   console.log(_arrOfObj);
}

getData();


基本上,期望在end事件内部无法访问完成的数组。这使它可以暴露于事件之外。希望这可以帮助需要这样做的其他人。

更多推荐

从.on事件内部将对象推到数组上

本文发布于:2024-05-07 15:03:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756821.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:部将   数组   推到   对象   事件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!