Tipos de Promesas

Promise.all

Devuelve una única Promesa que se resuelve cuando:

  • todas las Promesas en el iterable pasado como argumento se han resuelto,
  • o una se ha rechazado.
  • const promesa1 = obtenerDatos();
    const promesa2 = cargarImagen("imagen1.jpg");
    const promesa3 = cargarImagen("imagen2.jpg");

    Promise.all([promesa1, promesa2, promesa3])
    .then((resultados) => {
    const datos = resultados[0];
    const imagen1 = resultados[1];
    const imagen2 = resultados[2];
    console.log(datos);
    document.body.appendChild(imagen1);
    document.body.appendChild(imagen2);
    })
    .catch((error) => {
    console.error(error);
    });

    Promise.race

    Devuelve una única Promesa que se resuelve o se rechaza tan pronto como:

  • una de las Promesas del iterable se resuelve o se rechaza, con el valor o la razón de esa Promesa.
  • const promesa1 = new Promise(resolve => setTimeout(() => resolve('Ganó la primera'), 1000));
    const promesa2 = new Promise(resolve => setTimeout(() => resolve('Ganó la segunda'), 500));

    Promise.race([promesa1, promesa2])
    .then(ganador => console.log(ganador))
    .catch(error => console.error(error));

    Promise.allSettled

    Devuelve una Promesa que se resuelve después de que:

  • Todas las Promesas del iterable se hayan resuelto o rechazado, devolviendo un array de objetos con información sobre el resultado de cada Promesa.
  • const promises = [Promise.resolve(1), Promise.reject('Error'), Promise.resolve(3)];

    Promise.allSettled(promises)
    .then(resultados => console.log(resultados))
    .catch(error => console.error(error));

    Promise.any

    Devuelve una única Promesa que se resuelve tan pronto como:

  • Al menos una de las Promesas del iterable se resuelve.
  • Si todas las Promesas son rechazadas, se rechaza con un array de razones.
  • const promises = [Promise.resolve(1), Promise.reject('Error'), Promise.resolve(3)];

    Promise.allSettled(promises)
    .then(resultados => console.log(resultados))
    .catch(error => console.error(error));

    Tabla Comparativa de Tipos de Promesas

    Método y Definición
    Condición
    Valor resultante
    Promise.all: Retorna una Promesa que se resuelve cuando todas las Promesas en el iterable se han resuelto o una se ha rechazado.
    Se resuelve solo si todas las Promesas en el iterable se resuelven.
    Todas las Promesas se resuelven o una se rechaza.
    Promise.race: Retorna una Promesa que se resuelve o se rechaza tan pronto como una de las Promesas del iterable se resuelve o se rechaza, con el valor o la razón de esa Promesa.
    Se resuelve o se rechaza tan pronto como una de las Promesas del iterable se resuelve o se rechaza.
    La primera Promesa que se resuelve o se rechaza.
    Promise.allSettled: Retorna una Promesa que se resuelve después de que todas las Promesas en el iterable se hayan resuelto o rechazado, devolviendo un array de objetos con información sobre el resultado de cada Promesa.
    Se resuelve después de que todas las Promesas en el iterable se hayan resuelto o rechazado.
    Información sobre el resultado de cada Promesa.
    Promise.any: Retorna una Promesa que se resuelve tan pronto como al menos una de las Promesas del iterable se resuelve. Si todas las Promesas son rechazadas, se rechaza con un array de razones.
    Se resuelve tan pronto como al menos una de las Promesas se resuelve.
    El valor de la primera Promesa que se resuelve.