Promesas en JavaScript

Autor: | Última modificación: 16 de agosto de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

JavaScript es un lenguaje de programación basado en eventos. Esto quiere decir que nos permite preparar acciones para ser ejecutadas de manera asincrónica. Uno de los elementos que nos pone a disposición para crear esta asincronía son las promesas. En este post, te enseñaremos qué son las promesas en JavaScript y cómo nos pueden ayudar a crear asincronía.

¿Qué son las promesas en JavaScript?

Las promesas en JavaScript son objetos globales. Es decir, se trata de objetos nativos de este lenguaje de programación a los que tenemos acceso de manera global. El propósito principal de las promesas en JavaScript es crear acciones o programaciones asíncronas. Este tipo de programaciones son aquellas acciones que programamos para ser ejecutadas en algún momento, dependiendo de cuándo sucede otro evento o, incluso, de si llega a suceder. Por tanto, las promesas nos permiten crear acciones que están disponibles para ejecutarse inmediatamente, en el futuro o nunca.

Las promesas en JavaScript están conformadas por varios elementos fundamentales. Principalmente, una promesa tiene un callback, lo que significa que debemos pasarle una función a ejecutar.

Recuerda que cuando pasamos una función como parámetro de un método, se le llama callback. Para conocer más sobre este concepto, puedes leer nuestros posts sobre qué son los callbacks en JavaScript y cómo utilizarlos.

En las promesas de JavaScript sucede lo mismo que con el método reduce. En ambos escenarios, utilizamos una función callback a la que le debemos pasar dos parámetros. En el caso del método reduce, debemos pasarle los parámetros de previousValue y currentValue. Para una promesa, debemos pasar los parámetros resolver y rechazar. La particularidad de este contexto es que los parámetros resolver y rechazar son, a su vez, funciones.

¿Cómo se ven las promesas en JavaScript?

Para entender mejor el concepto de promesas en JavaScript, te ponemos un ejemplo. A continuación, verás una promesa que forma parte de la función doYouLoveMe. Esta promesa crea un console.log con el que pinta en pantalla el mensaje ‘Let me think about it’. Luego, utiliza el método setTimeout para controlar el tiempo tras el cual sucederán las demás acciones contenidas.

function doYouLoveMe (name) {

return new Promise (function (resolve, reject) {

console.log (‘Let me think about it…’)

setTimeOut (() => {

if (name = ‘Alberto’) {

resolve (‘Yes!’)

} else {

reject (‘Sorry but no…’)

}

}, 1000)

})

El método setTimeout forma parte de los métodos disponibles en JavaScript para controlar el tiempo de las acciones a ejecutar. Este método, al igual que las promesas, nos permite crear asincronía, es decir, preparar acciones para casos en los que deben ser ejecutadas, pero que no son inmediatos. Para conocer más sobre este método, te invitamos a leer nuestro artículo sobre los métodos setTimeout y setInterval en JavaScript.

La promesa que acabas de ver ha definido, dentro del método setTimeout, dos posibles acciones. Si el nombre de la función doYouLoveMe es ‘Alberto’, la promesa devuelta se resuelve con el string ‘Yes!’. En caso de que el nombre no sea ‘Alberto’, la función rechazará la promesa y nos devolverá el string ‘Sorry but no…’.

¿Qué quiere decir esto de resolver o rechazar las promesas en JavaScript? Estos dos parámetros o funciones dentro de las promesas hacen referencia a los estados posibles dentro de este objeto. Las promesas en JavaScript son objetos que representan operaciones que todavía no han sido completadas. Por ello, en el ejemplo anterior simulamos este estado pendiente con el método setTimeout.

Ten en cuenta que las promesas, además del estado pendiente, pueden existir en dos estados más. Para conocer más sobre este tema, te invitamos a leer nuestro post sobre los estados de promesas en JavaScript.

Entonces, como las promesas se van a completar más adelante, lo que hacemos es definir su comportamiento en caso de que vaya bien y en caso de que vaya mal. En este sentido, las promesas nos permiten preparar acciones a ejecutar según el escenario que tome lugar, cuando sea que tenga lugar. Por ello, son indispensables para crear asincronía en JavaScript.

Aunque los parámetros resolve y reject nos permiten preparar estas acciones para cualquier escenario, podemos crear promesas en JavaScript sin llamar a ambas funciones. Es decir, podemos crear un objeto promise sin llamar a la función reject o a la función resolve.

¿Quieres seguir aprendiendo?

Ahora que sabes cómo funcionan las promesas en JavaScript, en KeepCoding estamos seguros de que quieres seguir aprendiendo sobre lo que puedes hacer con este lenguaje de programación. Para ello, te recomendamos echarle un vistazo al programa de nuestro Desarrollo Web Full Stack Bootcamp, donde aprenderás todo lo necesario para ser un experto en desarrollo web. En pocos meses, dominarás lenguajes como JavaScript, CSS y HTML. ¿Quieres seguir aprendiendo de manera tanto teórica como práctica? ¡Matricúlate ahora!

👉 Descubre más del Desarrollo Web Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Sabías que hay más de 40.000 vacantes para desarrolladores de software sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso! 

¿Sabías que hay más de 40.000 vacantes para desarrolladores web sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!