Skip to content

Instantly share code, notes, and snippets.

@UlisesGascon
Created April 23, 2017 18:36
Show Gist options
  • Save UlisesGascon/cc3f98010430690196f00f852e2420f6 to your computer and use it in GitHub Desktop.
Save UlisesGascon/cc3f98010430690196f00f852e2420f6 to your computer and use it in GitHub Desktop.
Ejemplo de promesas para "Pensar Asícronamente en un mundo síncrono"
var fs = require("fs");
function leerArchivo(nombre) {
return new Promise(function(resolver, rechazar) {
console.log("Empezando la lectura de ", nombre);
fs.readFile(nombre, "utf-8", function(error, contenido) {
if (error) {
console.log("Error en la lectura");
return rechazar(error);
}
console.log("Lectura finalizada en ", nombre);
resolver({
"nombre": nombre,
"longitud": contenido.length
});
});
});
}
Promise.all([
leerArchivo("./fichero-1.txt"),
leerArchivo("./fichero-2.txt"),
leerArchivo("./fichero-3.txt")
]).then(function(respuestas) {
console.log(respuestas[0].nombre + " tiene " + respuestas[0].longitud + " caracteres");
console.log(respuestas[1].nombre + " tiene " + respuestas[1].longitud + " caracteres");
console.log(respuestas[2].nombre + " tiene " + respuestas[2].longitud + " caracteres");
console.log("¿Tenemos todas las respuestas?", respuestas.length === 3);
}).catch(function(err) {
console.log("No tuvimos éxito!");
console.log("Err:", err);
});
/* ---- Console output ----
Empezando la lectura de ./fichero-1.txt
Empezando la lectura de ./fichero-2.txt
Empezando la lectura de ./fichero-3.txt
Lectura finalizada en ./fichero-2.txt
Lectura finalizada en ./fichero-3.txt
Lectura finalizada en ./fichero-1.txt
./fichero-1.txt tiene 8 caracteres
./fichero-2.txt tiene 111 caracteres
./fichero-3.txt tiene 15 caracteres
¿Tenemos todas las respuestas? true
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment