Created
April 23, 2017 18:36
-
-
Save UlisesGascon/cc3f98010430690196f00f852e2420f6 to your computer and use it in GitHub Desktop.
Ejemplo de promesas para "Pensar Asícronamente en un mundo síncrono"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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