Blog de Gonzalo

PROMESAS EN JAVASCRIPT

En programación una promesa se usa cuando se realiza una función asíncrona, el ejemplo más claro para javascript sería el uso de ajax y una promesa es un objeto que puede o no devolver algún valor en la línea de ejecución actual o más adelante.
Las promesas se originaron en el ámbito de la programación funcional, aunque diversos paradigmas las han incorporado, generalmente para gestionar la programación asíncrona. En resumen, nos permiten definir cómo se tratará un dato que sólo estará disponible en un futuro, especificando qué se realizará con ese dato más adelante.
El estado inicial de una promesa es pending y si la llamada asíncrona se resuelve correctamente pasa a estado fullfilled y si ha habido un error pasará a estado rejected.
Siempre que se ha usado ajax se usan callbacks, es decir, que cuando se terminaba de ejecutar el ajax se llamaba a la función definida como callback. Una de las ventajas de usar promesas es que se evita lo que se conoce como Callback Hell, que consiste en tener muchas llamadas asíncronas y muchas llamadas a muchos callback.
Veamos un ejemplo de como usar promesas en javascript:

//Ejemplo de ajax sin promesas
$.get('http://...')
.done(function(data) {
// operaciones con data
})
.fail(function(error) {
// muestra el error
})
//Mismo ejemplo con promesas
fetch('http://...')
.then(function(response) {
// operaciones con response
})
.catch(function(error) {
// muestra el error
})

En una promesa pueden haber varios .then por si se quieren tratar diferentes promesas.
Este ejemplo es bastante sencillo pero dichas promesas se pueden usar aparte de ajax y es bastante útil.