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