Las promesas en JavaScript son una forma de manejar operaciones asíncronas. Una promesa representa un valor que puede estar disponible ahora, en el futuro o nunca. Son útiles para evitar el uso excesivo de callbacks y hacer que el código sea más fácil de leer y mantener.
Una promesa tiene tres estados posibles:
1. Pending (pendiente): La promesa aún no ha sido resuelta.
2. Fulfilled (resuelta): La operación se ha completado con éxito.
3. Rejected (rechazada): La operación ha fallado.
let promesa = new Promise((resolve, reject) => {
// Código asíncrono aquí
let exito = true; // Simulamos una operación exitosa
if (exito) {
resolve("Operación exitosa");
} else {
reject("Operación fallida");
}
});
promesa
.then((resultado) => console.log(resultado)) // Si la promesa se resuelve
.catch((error) => console.log(error)); // Si la promesa falla
fetch()
fetch()
es una API que utiliza promesas para realizar solicitudes HTTP asíncronas.
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Puedes encadenar varias promesas para ejecutar varias operaciones asíncronas de forma secuencial.
const primeraPromesa = new Promise((resolve, reject) => {
setTimeout(() => resolve('Primera promesa resuelta'), 1000);
});
const segundaPromesa = new Promise((resolve, reject) => {
setTimeout(() => resolve('Segunda promesa resuelta'), 2000);
});
primeraPromesa
.then((resultado) => {
console.log(resultado);
return segundaPromesa;
})
.then((resultado) => console.log(resultado))
.catch((error) => console.error(error));
Para más información, puedes consultar la documentación oficial de JavaScript Promises en MDN.
Jorge García
Fullstack developer