0% encontró este documento útil (0 votos)
111 vistas4 páginas

Guía de Promesas en JavaScript

Una promesa en JavaScript es un objeto que representa la finalización de una operación asíncrona y permite manejarla de manera más legible que los callbacks. Se pueden crear promesas utilizando el constructor Promise y consumirlas con los métodos then, catch y finally. Además, existen métodos útiles como Promise.all, Promise.race y funciones async/await que simplifican el manejo de promesas.

Cargado por

Luis Romano
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
111 vistas4 páginas

Guía de Promesas en JavaScript

Una promesa en JavaScript es un objeto que representa la finalización de una operación asíncrona y permite manejarla de manera más legible que los callbacks. Se pueden crear promesas utilizando el constructor Promise y consumirlas con los métodos then, catch y finally. Además, existen métodos útiles como Promise.all, Promise.race y funciones async/await que simplifican el manejo de promesas.

Cargado por

Luis Romano
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Guía de Promesas en JavaScript

1. ¿Qué es una Promesa?


Una promesa en JavaScript es un objeto que representa la eventual finalización (o
falla) de una operación asíncrona y su valor resultante. Las promesas permiten
trabajar con operaciones asíncronas de una manera más legible y manejable que los
callbacks anidados.

2. Creación de una Promesa


Para crear una promesa, se utiliza el constructor Promise , que toma una función
ejecutora con dos parámetros: resolve y reject .

const miPromesa = new Promise((resolve, reject) => {


// Código asíncrono
let exito = true; // Simulando una condición de éxito

if (exito) {
resolve("¡Operación exitosa!");
} else {
reject("Hubo un error.");
}
});

En este ejemplo, la promesa se resuelve con éxito si la condición exito es true ,


de lo contrario, se rechaza.

3. Consumo de Promesas
Para manejar el resultado de una promesa, se utilizan los métodos then , catch y
finally .

then

El método then se usa para manejar el caso de éxito de una promesa.

miPromesa.then((mensaje) => {
console.log(mensaje); // "¡Operación exitosa!"
});
catch

El método catch se usa para manejar el caso de rechazo de una promesa.

miPromesa.catch((error) => {
console.log(error); // "Hubo un error."
});

finally

El método finally se ejecuta después de que la promesa se resuelve o se rechaza,


independientemente del resultado.

miPromesa.finally(() => {
console.log("Operación completada.");
});

4. Encadenamiento de Promesas
Las promesas pueden encadenarse para manejar una secuencia de operaciones
asíncronas.

miPromesa
.then((mensaje) => {
console.log(mensaje); // "¡Operación exitosa!"
return "Siguiente paso";
})
.then((siguienteMensaje) => {
console.log(siguienteMensaje); // "Siguiente paso"
})
.catch((error) => {
console.log(error);
});

5. Métodos Útiles para Promesas


JavaScript proporciona varios métodos útiles para trabajar con promesas.

Promise.all

Este método toma un arreglo de promesas y se resuelve cuando todas las promesas
del arreglo se resuelven.
const promesa1 = Promise.resolve(3);
const promesa2 = 42;
const promesa3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'foo');
});

Promise.all([promesa1, promesa2, promesa3]).then((valores) => {


console.log(valores); // [3, 42, "foo"]
});

Promise.race

Este método toma un arreglo de promesas y se resuelve o rechaza tan pronto como
una de las promesas del arreglo se resuelve o rechaza.

const promesa1 = new Promise((resolve, reject) => {


setTimeout(resolve, 500, 'uno');
});

const promesa2 = new Promise((resolve, reject) => {


setTimeout(resolve, 100, 'dos');
});

Promise.race([promesa1, promesa2]).then((valor) => {


console.log(valor); // "dos"
});

Promise.allSettled

Este método toma un arreglo de promesas y se resuelve después de que todas las
promesas se hayan resuelto o rechazado, devolviendo un arreglo de objetos que
describen el resultado de cada promesa.

const promesa1 = Promise.resolve(3);


const promesa2 = new Promise((resolve, reject) => {
setTimeout(reject, 100, 'error');
});

Promise.allSettled([promesa1, promesa2]).then((resultados) => {


console.log(resultados);
// [{status: "fulfilled", value: 3}, {status: "rejected", reason: "error
});

Promise.any
Este método toma un arreglo de promesas y se resuelve tan pronto como una de las
promesas se resuelve, rechazándose solo si todas las promesas son rechazadas.

const promesa1 = new Promise((resolve, reject) => {


setTimeout(reject, 100, 'error1');
});

const promesa2 = new Promise((resolve) => {


setTimeout(resolve, 200, 'resultado');
});

const promesa3 = new Promise((resolve, reject) => {


setTimeout(reject, 300, 'error2');
});

Promise.any([promesa1, promesa2, promesa3]).then((valor) => {


console.log(valor); // "resultado"
});

6. Promesas en Funciones Asíncronas


Las funciones async y await simplifican el manejo de promesas, permitiendo
escribir código asíncrono que se asemeja al código síncrono.

async function miFuncionAsincrona() {


try {
const resultado = await miPromesa;
console.log(resultado); // "¡Operación exitosa!"
} catch (error) {
console.log(error); // "Hubo un error."
} finally {
console.log("Operación completada.");
}
}

miFuncionAsincrona();

También podría gustarte