从流中获取数据供以后使用

问题描述 投票:0回答:1

我正在尝试从流中获取数据。

const csv = require('csv-parser')
const fs = require('fs')
const results = [];

fs.createReadStream('data.csv')
  .pipe(csv())
  .on('data', (data) => results.push(data))
  .on('end', () => {
        console.log(results)
  });

console.log(results);

结果是第一个空[],然后是csv的数据。

[]
[ { '0': '10-01-2020 14:37:20',
    '1': '10-01-2020 18:17:42',
    '2': '13222',
    '3': '00',
    '4': '3.67',
    '5': '36.73',
    '6': '',
    '7': 'Default' },
  { '0': '10-01-2020 09:02:00',
    '1': '10-01-2020 14:02:20',
    '2': '18020',
    '3': '00',
    '4': '5.01',
    '5': '50.06',
    '6': '',
    '7': 'Default' } ]

我想稍后在程序中修改result中的数据。

我认为我缺少一些基本的东西。

javascript node.js csv stream
1个回答
0
投票

代码没有错。您有两次控制台声明。最后一个是打印空数组。

[createReadStream是异步操作,因此此后将触发end侦听器上的控制台。

如果删除最后一个控制台语句,它将显示预期的结果。

© www.soinside.com 2019 - 2024. All rights reserved.