Estoy construyendo un sistema en Node.js que se supone que debe encontrar todos los archivos en una matriz de carpetas, registrarlos y luego realizar algún trabajo adicional utilizando esa información.Agregue parámetros adicionales a la función de devolución de llamada
Estoy usando fs.readdir() para obtener todos los archivos de forma sincrónica desde cada una de las carpetas. Mi código es el siguiente:
for(i=0,max=paths.length; i<max; i++) {
var path = paths.pop();
console.log("READING PATH: " + path);
fs.readdir(path, function(err, files) { handleDir(err, files, path); });
}
El problema es que, dependiendo de la rapidez con la readdir() ejecuta, handleDir() está recibiendo el camino equivocado. Esto sucede porque para cuando se ejecuta la devolución de llamada, el siguiente ciclo ya ha comenzado, lo que significa que la variable de ruta ha cambiado.
Entonces, lo que tengo que hacer es bloquear de alguna manera esa variable de ruta a su función de devolución de llamada específica. No puedo pensar en ninguna buena manera de hacer esto, ¿alguien tiene algunas ideas?
Me gusta esta técnica por su concisión – nicolaskruchten