Получение данных из потока для последующего использования - PullRequest
0 голосов
/ 11 января 2020

Я пытаюсь получить данные из потока.

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 позже в программе.

Я думаю, что мне не хватает некоторых базовых c вещей.

1 Ответ

1 голос
/ 11 января 2020

в коде нет ничего плохого. У вас есть консольные заявления дважды. Один в конце, который печатает пустой массив.

createReadStream является асинхронной операцией c, поэтому консоль на приемнике end впоследствии запускается.

Если вы удалите последний оператор консоли, он покажет результаты, как и ожидалось .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...