¿Cómo funcionan los cierres en las promesas en JS?

Autor: | Última modificación: 15 de marzo de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el fascinante mundo del desarrollo web y la programación, las promesas en JavaScript son una herramienta poderosa que permite trabajar con operaciones asincrónicas de una manera más ordenada y eficiente. Pero ¿alguna vez te has preguntado cómo funcionan los cierres en las promesas en JS? En este artículo, exploraremos este tema en detalle y desentrañaremos los misterios detrás de esta característica fundamental en el desarrollo web.

Entendiendo las promesas en JavaScript

Antes de profundizar en los cierres en las promesas en JS, es importante tener una comprensión sólida de lo que son las promesas en sí mismas. Una promesa en JavaScript es un objeto que representa un valor que puede estar disponible ahora, en el futuro o nunca. En otras palabras, es una forma elegante de manejar tareas asincrónicas como la carga de datos desde un servidor o la manipulación de archivos.

El objeto promise

Las promesas en JS se crean utilizando el objeto Promise. Para crear una nueva promesa, simplemente se instancia un objeto Promise. Veamos un ejemplo básico:

const miPromesa = new Promise((resolve, reject) => { 
// Lógica asincrónica aquí 
});

Aquí, resolve y reject son funciones que se utilizan para determinar el resultado de la promesa. La función resolve se llama cuando la promesa se completa con éxito, mientras que reject se llama cuando ocurre un error.

El método then

Una vez que se ha creado una promesa, se puede usar el método then para adjuntar funciones que se ejecutarán cuando la promesa se resuelva (con éxito) o se rechace (con error). Este es un concepto fundamental en los cierres en las promesas en JS.

miPromesa 
.then(resultado => { 
// Manejar el resultado exitoso 
}) 
.catch(error => { 
// Manejar el error 
});

Cierres en las promesas en JS

Ahora que tenemos una base sólida sobre las promesas en JavaScript, es el momento de adentrarnos en el tema principal de este artículo: los cierres en las promesas en JS. Los cierres son una característica poderosa y versátil en JavaScript que permite el acceso a variables y funciones externas desde dentro de una función interna.

En el contexto de las promesas, los cierres se vuelven especialmente útiles cuando deseamos mantener el estado y los datos entre múltiples llamadas al método then de una cadena de promesas. Consideremos el siguiente ejemplo:

function obtenerDatos() { 
let datos = null; 
const promesa = new Promise((resolve, reject) => { 
// Simulación de una solicitud asincrónica 
setTimeout(() => { 
datos = "¡Datos obtenidos!"; 
resolve(); 
}, 2000); 
}); 
return promesa; 
} 
obtenerDatos() 
.then(() => { 
console.log(datos); // ¿Cómo podemos acceder a 'datos' aquí? 
});

En este caso, nos encontramos con un problema. No podemos acceder a la variable datos desde dentro de la función then, ya que está fuera de su alcance. Es aquí donde los cierres en las promesas en JS entran en juego.

Cierres en las promesas en JS para acceder a datos

Para acceder a la variable datos dentro de la función then, podemos utilizar un cierre. Modifiquemos el ejemplo anterior para lograr esto:

function obtenerDatos() { 
let datos = null; 
const promesa = new Promise((resolve, reject) => { 
// Simulación de una solicitud asincrónica 
setTimeout(() => { 
datos = "¡Datos obtenidos!"; 
resolve(); 
}, 2000); 
}); 
return { 
promesa, 
obtenerDatos() { 
return datos; 
}, 
}; 
} 
const resultado = obtenerDatos(); 
resultado.promesa 
.then(() => { 
console.log(resultado.obtenerDatos()); // Accediendo a 'datos' utilizando un cierre 
});

En este ejemplo, hemos creado un cierre al devolver un objeto que contiene tanto la promesa como una función obtenerDatos que puede acceder a la variable datos. De esta manera, podemos mantener el estado y los datos a lo largo de la cadena de promesas y acceder a ellos cuando sea necesario.

Los cierres en las promesas en JS son una técnica poderosa que permite acceder a variables y datos externos dentro de una cadena de promesas. Esto es particularmente útil cuando deseamos mantener el estado y compartir datos entre diferentes etapas de una operación asincrónica.

Aunque los cierres en las promesas pueden parecer un concepto avanzado, comprenderlos y utilizarlos de manera efectiva puede mejorar significativamente la claridad y el rendimiento de su código JavaScript.

Únase al desarrollo web con KeepCoding

Si está buscando una carrera en el mundo de la tecnología, el Desarrollo Web Full Stack Bootcamp de KeepCoding es tu puerta de entrada al sector de TI. Este programa intensivo y completo lo llevará desde los fundamentos de la programación hasta la creación de aplicaciones web en tiempo real.

Al finalizar el bootcamp, estará listo para enfrentarte a desafíos emocionantes en la industria tecnológica, que ofrece salarios competitivos y una estabilidad laboral que pocos otros sectores pueden igualar. No pierda la oportunidad de cambiar su vida y embarcarse en una emocionante carrera en el desarrollo web. ¡Regístrese hoy y comience su viaje hacia el éxito!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

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