Volver a la página principal
sábado 14 septiembre 2024
4

Cómo usar promesas en JavaScript

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.

Sintaxis básica

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

Algunos ejemplos de uso de promesas en JavaScript

Ejemplo 1: Promesas con 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));

Ejemplo 2: Encadenar promesas

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));

Referencia oficial

Para más información, puedes consultar la documentación oficial de JavaScript Promises en MDN.

Etiquetas:
javascript
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer