Espero poder conseguir algo en el sitio. readFile lee mi archivo después de que se ejecuta el resto del código. Necesito la información del archivo para usarla dentro del resto del código. He estado investigando sobre síncrono y asíncrono, pero no puedo entender cómo se aplica.
Este es mi código de archivo de lectura y debajo comienza otro código que depende de los datos dentro de este archivo.
const carPartlist = () => { const fs = require('fs'); fs.readFile("doc.csv", "utf8", (error, textContent) => { if (error) { throw error; } for (let row of textContent.split("\n")) { const rowItems = [row.split(",")]; console.log(rowItems); } }) } carPartlist();Es una buena idea leer asíncrono (para no bloquear su aplicación en una lectura síncrona). Hazlo asi...
const carPartlist = async () => { const fs = require('fs').promises; // node >= 10 const textContent = await fs.readFile("doc.csv", "utf8"); for (let row of textContent.split("\n")) { const rowItems = [row.split(",")]; console.log(rowItems); } } carPartlist(); EDITAR tal vez me malinterpreten porque terminé el fragmento donde terminó el OP. El código OP completo probablemente ejecuta el código antes y/o después de carPartList . El trabajo que se debe hacer después se puede codificar de dos maneras:
// at the top level carPartlist().then(() => { // code here that depends on carPartList being run // presumably, the more complete OP code does something with the data it reads }) // or, in a function async functionThatRunsEarly() { await carPartlist(); // code here that depends on carPartList being run }Según la pregunta del OP (y al contrario de algunos de los comentarios), esta es la forma correcta de hacer archivos de E / S, esto no bloquea el hilo de la aplicación, esto y causa el "código aquí que depende de carPartList" (y el código posterior a la lectura en esa función) para ejecutar después de la lectura.