【问题标题】:Getting data from stream for later use从流中获取数据供以后使用
【发布时间】:2020-01-11 15:25:00
【问题描述】:

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

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】:

    代码没有问题。您有两次控制台语句。最后一个是打印空数组的内容。

    createReadStream 是一个异步操作,因此end 侦听器上的控制台随后会被触发。

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

    【讨论】:

    • 谢谢,只是需要提醒一下,Javascript 是异步的。谢谢!
    • 请将其标记为答案以供其他人参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-25
    • 2017-04-09
    • 2023-04-04
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多