Tengo un código que lee .csv línea por línea y guarda cada fila analizada en la base de datos
const csv = require('csv-parse') const errors = [] csv.parse(content, {}) .on('data', async function (row: any) { const error = await tryToSaveToDatabase(row); if (error) { errors.push(error) } }) .on('end', function () { // somehow process all errors }) pero, desafortunadamente, .on('end', ... el bloque se está llamando antes que todos los bloques en await tuvieron éxito.
He leído las operaciones asincrónicas del analizador Csv de NodeJs ; parece que no podemos usar await dentro .on('data', ... callback.
¿Cuál es la forma correcta de realizar tal cosa, si quiero leer .csv línea por línea (los archivos pueden ser muy grandes, por lo que debe realizarse de manera de transmisión) y recopilar algunos errores mientras se guarda en la base de datos? (estos errores se muestran en la interfaz entonces)
https://csv.js.org/parse/api/async_iterator/ Esta solución lee .csv línea por línea