Tanto en JavaScript como en muchos otros lenguajes de programación, existen elementos que tenemos a nuestra disposición con el objetivo de mejorar nuestro código. Es decir, para ejecutar acciones de un modo más eficiente y sencillo. En este post, te enseñaremos qué es y cómo funciona el método finally en JavaScript, ideal para simplificar el final de una promesa.
¿Qué es el método finally en JavaScript?
El método finally en JavaScript es uno de los métodos disponibles para tratar con promesas en este lenguaje de programación. Es decir, además de utilizar los métodos then (cuando la promesa da resolve) y catch (cuando la promesa da reject) para controlar el resultado de una promesa, podemos utilizar el método finally.
¿Qué hace exactamente el método finally en JavaScript? Pues este método nos permite definir una acción a ejecutar independientemente de si una promesa se resuelve o se rechaza. En este sentido, es un método que se puede ejecutar como resultado sin importar si se ejecuta el then o el catch.
Entonces, si la promesa ejecuta un resolve, la acción a ejecutar se tratará tanto con el then como con el finally. Por el contrario, si la promesa ejecuta un reject, se ejecutarán tanto el método catch como el finally. Esto es ideal cuando queremos ejecutar un mismo final sin importar el proceso que se haya dado.
En nuestro post sobre promesas en frontend JavaScript, te hemos enseñado que una promesa teórica puede ser que nuestra madre nos pida ir por patatas. En este escena, nuestra madre nos ha dicho que, si encontramos patatas (resolve), ella hará una tortilla (método then), pero si no encontramos (reject), pedirá una pizza (método catch). Además, nos ha dicho que, sin importar el resultado, esta noche cenaremos viendo un nuevo episodio de House of the Dragon (método finally).
Si quieres conocer más detalles sobre este método, te invitamos a leer el artículo promise.prototype.finally ( ) en Mozilla Developer Network.
¿Cómo funciona el método finally en JavaScript?
Para explicarte exactamente cómo funciona el método finally en JavaScript, creemos que es mejor ponerte un ejemplo. Supongamos que tenemos la función CalculateRandomNumber, que hemos creado en nuestro post sobre 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 que tenemos esta función con una promesa, queremos determinar qué acción asincrónica tomar en caso de que se resuelva la promesa (resolve) y en caso de que se rechace (reject). Para ello, usamos los métodos then y catch de JavaScript, que nos permiten determinar las acciones a ejecutar en cada caso:
calculateRandomNumber ( )
.then (randomNumber) => {
console.log (randomNumber);
console.log (“después de calcular”);
})
.catch (( ) => {
console.log (“el número es impar”);
console.log (“después de calcular”);
});
Como puedes ver, el método then de nuestro ejemplo pinta el número aleatorio porque la promesa se ha resuelto. Por su parte, el método catch pinta un string que nos dice que el número aleatorio es impar. Luego, ambos métodos pintan en consola la frase después de calcular. Esto es lo que podemos solucionar con el método finally en JavaScript.
Aunque no hay algo intrínsecamente malo en repetir una línea de código en nuestro proyecto, la clave de un buen desarrollo web es simplificar el código para hacer que su lectura sea más eficiente. Por ello, utilizamos métodos, como el método finally en JavaScript, que nos permiten ejecutar dos acciones desde una sola línea de código.
A continuación, te mostramos cómo usar el método finally para transformar la función anterior y hacerla más eficiente. Es decir, evitar la repetición de líneas de código.
calculateRandomNumber ( )
.then (randomNumber) => {
console.log (randomNumber);
})
.catch (( ) => {
console.log (“el número es impar”);
})
.finally (( ) => {
console.log (“después de calcular”);
});
¿Quieres seguir aprendiendo?
Si ahora que sabes qué es y cómo funciona el método finally en JavaScript te emociona seguir aprendiendo sobre este poderoso lenguaje de programación, no te puedes perder nuestro Desarrollo Web Full Stack Bootcamp. En este espacio de formación intensiva, aprenderás en profundidad cómo usar lenguajes como JavaScript, HTML, CSS, JSX y más para desarrollar tus propios proyectos web. ¿A qué esperas para inscribirte e impulsar tu carrera? ¡Entra ahora y contacta con nosotros!