JavaScript | Método Promise.allSettled()

La Promesa es un objeto de JavaScript que puede estar en tres estados pendiente, cumplido o rechazado. El método Promise.allSettled() en JavaScript se usa para obtener una promesa cuando se liquidan todas las entradas que se cumplen o se rechazan.

Básicamente, devuelve una promesa que se resuelve cuando todas las demás promesas que se pasan se cumplen o se rechazan y, en la salida, muestra la array de objetos que, en particular, muestra el estado y el valor de cada promesa individualmente.

Sintaxis:

Promise.allSettled(iterable);

Parámetros: este método acepta un solo parámetro iterable que toma una array de promesas o una array normal que contiene algunos objetos.

Valor devuelto: este método devuelve los siguientes valores:

  • Si el argumento pasado está vacío, devuelve una Promesa que ya se resolvió .
  • Para todos los demás casos, devuelve una Promesa pendiente , junto con el estado y los valores de todas las promesas que se pasan dentro de ella individualmente.

Ejemplo 1:

Javascript

<script>
    // Illustration of Promise.allSettled()
    // Method in Javascript with Example
 
    const p1 = Promise.resolve(50);
    const p2 = new Promise((resolve, reject) =>
                    setTimeout(reject, 100, 'geek'));
    const prm = [p1, p2];
 
    Promise.allSettled(prm).
      then((results) => results.forEach((result) =>
      console.log(result.status,result.value)));
</script>

 
Producción:

"fulfilled"
 50
"rejected" 
 undefined

Ejemplo 2:

Javascript

<script>
    // Simple promise that resolves
    // After a given time
    const tOut = (t) => {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve(`Completed in ${t}`)
        }, t)
      })
    }
   
    // Resolving a normal promise
    tOut(1000).then(result => console.log(result)) 
    // Completed in 1000
   
    // Promise.allSettled
    Promise.allSettled([tOut(1000), tOut(2000)]).then(result =>
    console.log(result))
</script>

Producción:

"Completed in 1000"
Array [Object { status: "fulfilled", value: "Completed in 1000" }, 
Object { status: "fulfilled", value: "Completed in 2000" }]

Ejemplo-3: En este ejemplo, hemos mostrado el resultado exacto que se recibe cada vez que ejecutamos varias promesas y las pasamos dentro del método Promise.allSettled().

Javascript

let first_promise = Promise.resolve(200);
 
let second_promise = Promise.reject("Rejected Promise");
 
let third_promise = new Promise((resolve, reject) =>{
    setTimeout(() => resolve(500), 100)
});
 
let result = Promise.allSettled([first_promise, second_promise, third_promise]);
result.then((value) => console.log(value));
 
// This code is contributed by Aman Singla....

Producción:

[
  { status: 'fulfilled', value: 200 },
  { status: 'rejected', reason: 'Rejected Promise' },
  { status: 'fulfilled', value: 500 }
]

Navegadores compatibles: 

  • Google Chrome 76 y superior
  • Edge 79 y superior
  • Mozilla Firefox 71 y superior
  • Ópera 63 y superior
  • Safari 13 y superior
  • Internet Explorer no es compatible

Publicación traducida automáticamente

Artículo escrito por shivanisinghss2110 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *