Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

215
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!