Sobes.tech
Middle

¿Cómo funciona Promise en JavaScript?

sobes.tech AI

Respuesta de la IA

  • Objeto que representa la posible finalización (o fallo) de una operación asíncrona y su valor resultante.
  • Estados de una promesa:
    • pending: estado inicial, no cumplido ni rechazado.
    • fulfilled: indica que la operación se completó con éxito.
    • rejected: indica que la operación terminó con un error.
  • La transición de pending a fulfilled o rejected ocurre una sola vez y de forma irreversible.
  • Métodos:
    • .then(onFulfilled, onRejected): recibe dos funciones de callback. La primera (onFulfilled) se llama cuando la operación tiene éxito, la segunda (onRejected) en caso de error. Ambos argumentos son opcionales. Devuelve una nueva promesa.
    • .catch(onRejected): forma abreviada de .then(null, onRejected). Se usa para manejar errores. Devuelve una nueva promesa.
    • .finally(onFinally): se llama independientemente del resultado de la promesa (éxito o error). Útil para limpiar recursos. Devuelve una nueva promesa.
  • Creación de una promesa:
new Promise((resolve, reject) => {
  // Operación asíncrona
  const success = true;
  if (success) {
    resolve("¡Operación exitosa!"); // Estado fulfilled
  } else {
    reject("Algo salió mal..."); // Estado rejected
  }
});
  • Encadenamiento de promesas: .then(), .catch(), .finally() devuelven promesas, permitiendo crear cadenas para ejecutar operaciones asíncronas en secuencia.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));