Soy muy novato en Javascript. Todo lo que intento hacer es leer un archivo CSV desde el lugar y jugar con los datos, como convertir las filas en matrices de matrices. Encontré fs.createReadStream , que ayuda a leer datos csv pero no puedo utilizar los datos csv procesados más adelante. Leí en algún hilo, y supongo que el problema con la sincronización. Mi código se ve así-
ar abc = [] const csv = require('csv-parser'); const fs = require('fs'); fs.createReadStream('data.csv') .pipe(csv()) .on('data', (row) => { var nums =[]; // console.log(row); nums.push(row['time']) nums.push(row['return']) abc.push(nums) }) .on('end', function () { console.log(abc) }) var final_sort= [] console.log() for (let i = 0; i < abc.length; i=i+5){ final_sort.push(abc[i]) } console.log(final_sort)esto genera el registro fuera de fs primero y luego genera fs.createReadStream. Quería la fs. createReadStream para ser procesado primero, luego puedo utilizar más los datos.
si quieres manejar tu secuencia, entonces tienes que probar las promesas
si su tarea es leer todos los datos y luego ordenarlos, su código será como
var abc = [] const csv = require('csv-parser'); const fs = require('fs'); // -----------1 process start await new Promise((resolve, reject) => { fs.createReadStream('data.csv') .pipe(csv()) .on('data', (row) => { var nums = []; // console.log(row); nums.push(row['time']) nums.push(row['return']) abc.push(nums) }) .on('end', function () { console.log(abc) //---------- 2 return after all data read resolve() }) }); //---------- 3 here you get all data var final_sort = [] console.log() for (let i = 0; i < abc.length; i = i + 5) { final_sort.push(abc[i]) } console.log(final_sort)para más referencia comprensión-javascript-promesas