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

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