Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
el valor de retorno del análisis csv del nodo vuelve como indefinido cuando se llama

Aquí está el código que estoy ejecutando

 const fs = require('fs'); const csvParse = require('csv-parse'); function getValue() { let results = []; fs.createReadStream('./assets/myCSV.csv') .pipe(csvParse({delimiter: '\n'})) .on('data', (data) => results.push(data)) .on('error', (err => { console.log(`csv-parse error from getValue: ${err}`); })) .on('end', () => { console.log('finished!'); let csvLength = Object.keys(results).length; // getting a random value within the csv min = Math.ceil(0); max = Math.floor(csvLength); let randomNumber = Math.floor(Math.random() * (max - min + 1)) + min; let randomCSVLine = results[randomNumber]; console.log(randomCSVLine); return randomCSVLine; }); } console.log(`mine: ${getValue()}`);

aquí están los resultados y no sé por qué no se muestra el valor. Creo que podría ser un problema asíncrono, pero aún no estoy seguro de cómo resolverlo:

 mine: undefined finished! [ '10' ]
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Creo que aquí encontrarás la solución.

CSV Parser para el uso de Promesas de Node.js

A partir de la versión 15 de Node.js, la API Stream promete un nuevo módulo "stream/promises".

Parte del módulo Stream Promises es la función terminada. La función se conecta a una secuencia y resuelve una promesa cuando ya no se puede leer, escribir o ha experimentado un error o un evento de cierre prematuro.

El ejemplo de promesas aprovecha la canalización y el acabado para proporcionar una solución conveniente para leer un archivo del sistema de archivos y canalizar su salida al analizador.

Este ejemplo está disponible con el nodo de comando samples/recipe.promises.js.

 const parse = require('csv-parse'); const fs = require('fs'); const { finished } = require('stream/promises'); const processFile = async () => { records = [] const parser = fs .createReadStream(`${__dirname}/fs_read.csv`) .pipe(parse({ // CSV options if any })); parser.on('readable', function(){ let record; while (record = parser.read()) { // Work with each record records.push(record) } }); await finished(parser); return records } (async () => { const records = await processFile() console.info(records); })()

Solo necesita hacer los mismos cambios en su código para lograr los resultados deseados.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda