CSV разобрать несколько файлов - PullRequest
0 голосов
/ 11 апреля 2020

Моя цель: мне нужно взять N файлов с FTP, проанализировать их и отправить проанализированные данные куда-нибудь. Моя текущая реализация работает нормально, но когда я заканчиваю первый файл, он начинает зависать.

Пакет, который я использую для потока / анализа csv, это fast-csv. Ниже приведен пример того, что я пытался сделать sh. Он запускается только 1 раз. Я чувствую, что это как-то связано с тем, что поток не заканчивается или не заканчивается должным образом. Я надеялся, что кто-нибудь подскажет мне, в каком направлении я могу пойти. Дайте мне знать, если вам нужно больше разъяснений.

async handleStreams (files) {
  for await (const file of files) {
    await this.func(file)
  }
}

async func (file) {
    return new Promise((resolve, reject) => {
    const stream = readableStream(file)
    stream
      .on('error', error => { 

      })
      .on('data', (row: string[]) => {
        // do stuff
                stream.end()
      })
      .on('end', async (rowCount: Number) => { 
        await sendOff()
        // resolve()????
      })
      .on('close', async () => {
                // resolve()????
      })
  })  
}
...