Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
Espere la lectura de un archivo csv

Estoy tratando de leer un archivo csv en Typescript con la biblioteca "csv-parse" creando un observable; el siguiente código usa fs.createReadStream para leer el archivo; Me gustaría devolver el observable y suscribirme a él, pero el proceso no obtiene nada, probablemente porque no estoy esperando el fs.createReadStream asíncrono; como resolver?

 import { parse } from "csv-parse"; import { Observable } from "rxjs"; import * as fs from "fs"; import path from "path"; export interface StdJsonDoc<T = string> { [key: string]: T; } export function createCsvObservable( filePath: string, fileType: string | undefined = undefined, fieldDelimiter: string = ",", columnHeader: boolean = true ) { if (fileType !== "csv") { throw Error(`Cannot create CSV observable from non CSV file`); } return new Observable<StdJsonDoc>((subscriber) => { const parser = fs.createReadStream(filePath).pipe( parse({ delimiter: fieldDelimiter, columns: columnHeader, trim: true, skip_empty_lines: true, relax_column_count: true, }) ); parser.on("readable", () => { let record: StdJsonDoc; while ((record = parser.read())) { subscriber.next(record); } }); parser.on("end", () => { subscriber.complete(); }); parser.on("error", () => { subscriber.error(); }); }); } async function main() { const myObservableCsv = createCsvObservable( path.join(__dirname, "data", "myCsvFile.csv"), "csv" ); myObservableCsv.subscribe({ next: (record) => { console.log(`RECORD: ${record}`); }, error: () => { console.log("ERROR"); }, complete: () => { console.log("COMPLETE"); }, }); } main().then(() => { console.log(`*** END PROGRAM ***`); process.exit(0); });
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

La persona que llama no se suscribe al observable devuelto. Qué pasa cuando haces:

 createCsvObservable(path.join(__dirname, "data", "myCsvFile.csv"),"csv").subscribe(console.log);
about 4 years ago · Juan Pablo Isaza Denunciar

0

El problema era el principal "asincrónico"; eliminó "async" y simplemente llamó a main () funciona.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda