Promesas con condición en JavaScript

| Última modificación: 8 de abril de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

La asincronía es uno de los conceptos que distingue a JavaScript de otros lenguajes de programación. Para conseguir este concepto, utilizamos una promesa, un objeto que nos permite controlar procesos asincrónicos de muchas maneras. En este post, te enseñaremos qué son las promesas con condición en JavaScript y cómo crear un código más complejo con ellas.

¿Qué son las promesas con condición en JavaScript?

Las promesas con condición en JavaScript son un tipo de promesa que combina la sintaxis del objeto promise en JavaScript con palabras clave condicionales como ifelse. Es decirque, una vez declarada la promesa, podemos insertar líneas de código como las siguientes:

if (condition) {

} else {

}

Este tipo de promesas nos permiten crear procesos asíncronos mucho más complejos que los que crearíamos con tan solo resolve y reject. A continuación, te explicamos este concepto con un ejemplo.

Ejemplo de promesas con condición en JavaScript

Ahora que sabes qué son las promesas con condición en JavaScript, te ponemos un ejemplo. Supongamos que tenemos la promesa que hemos realizado en nuestro post sobre sintaxis de promesas en JavaScript:

function calculateRandomNumber ( ) {

return new Promise (function (resolve, reject) {

setTimeout (( ) => {

const randomNumber = Math.floor (Math.random ( ) * 10);

resolve (randomNumber);

}, 1500);

});

}

Las líneas de código anteriores hacen que, después de un segundo y medio, obtengamos un número aleatorio en nuestra consola. Ahora, supongamos que queremos ir un paso más allá con nuestra promesa y hacer que el resultado solo se tome por bueno (resolve) cuando el número aleatorio es par. Entonces, deberemos añadir condiciones a esta promesa.

Lo primero que debemos hacer para ejecutar promesas con condición en JavaScript es determinar qué irá en la sección if y qué irá en la sección else. En nuestro ejemplo, determinamos que el valor de número par hará que se resuelva la promesa. Si esto no sucede, no se resolverá. Es decir, en la primera situación usaremos el método resolve y en la segunda usaremos el método reject:

function calculateRandomNumber ( ) {

return new Promise (function (resolve, reject) {

setTimeout (( ) => {

const randomNumber = Math.floor (Math.random ( ) * 10);

if (condition) {

resolve (randomNumber);

} else {

reject (randomNumber);

}, 1500);

});

}

Ahora que tenemos los dos casos que nos dicen qué sucederá (se resuelve o se rechaza), debemos determinar la condición bajo la cuál sucederán los eventos. Recuerda que para usar if y else solo necesitamos una condición, pues en caso de que se cumpla una, sucede algo y si no se cumple, sucederá la otra.

Para determinar que un número es par o impar, utilizamos el operador aritmético módulo. Para conocer sobre este y otros operadores, te invitamos a leer nuestro post sobre operadores aritméticos en JavaScript.

A continuación, te mostramos las líneas de código que nos permiten convertir la promesa inicial en un ejemplo ideal de promesas con condición en JavaScript:

function calculateRandomNumber ( ) {

return new Promise (function (resolve, reject) {

setTimeout (( ) => {

const randomNumber = Math.floor (Math.random ( ) * 10);

if (randomNumber % 2 === 0) {

resolve (randomNumber);

} else {

reject (randomNumber);

}, 1500);

});

}

Ahora, el último paso para hacer que nuestro ejemplo funcione será controlar los resultados resolve y reject con los métodos then y catch. Para ello, basta con llamar a la función calculateRandomNumber y determinar acciones para ambos escenarios. En nuestro caso, hemos determinado que, si la promesa se resuelve, se pintará el número aleatorio. Si la promesa se rechaza, pintaremos un simple string por la consola que diga que el número es impar.

calculateRandomNumber ( )

.then (randomNumber) => {

console.log (randomNumber);

.catch (( ) => {

console.log (“el número es impar”);

});

¿Qué sigue?

Ahora que sabes cómo ejecutar promesas con condición en JavaScript, ¡te invitamos a usarlas en tus propios proyectos! Para seguir aprendiendo sobre el desarrollo de todo tipo de proyectos web, te recomendamos nuestro Desarrollo Web Full Stack Bootcamp, un espacio ideal para aprender la teoría desde la práctica. ¡No te lo pierdas y pide más informació!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado