Explique Promise.allSettled() con async-await en JavaScript

En este artículo, intentaremos comprender cómo podemos implementar el método Promise.allSettled() con async-await en JavaScript con la ayuda de ciertos ejemplos de codificación y explicaciones teóricas. Primero comprendamos rápidamente el método Promise.allSettled(). Este método es uno de los métodos más comunes disponibles en el objeto Promesa que se ejecuta una vez que todas las promesas se resuelven con éxito o se rechazan. El resultado de este método será una array de múltiples objetos (dependiendo de tantas promesas creadas por el usuario), que contendrá el valor y el estado de cada promesa en cada objeto. Es mejor usar Promise.all() si las tareas dependen unas de otras o si queremos rechazar una promesa en particular en algún momento.

Sintaxis:

Se preferirá utilizar la siguiente sintaxis al implementar el método Promise.allSettled():

Promise.allSettled([first_promise, second_promise, ...]).then(
    // do something...
)

Ahora, después de analizar la sintaxis anterior, veremos el siguiente ejemplo que nos ayudará a comprender la sintaxis anterior de una manera mucho mejor y más eficiente:

Ejemplo 1: En este ejemplo, crearemos tres promesas una tras otra. Cada promesa contendrá una función de temporizador diferente con diferentes tiempos de espera. Luego, usaremos el método Promise.allSettled() que tomará las tres promesas como entrada en forma de array (o un objeto iterable) y ejecutará el resultado según su rol.

Javascript

let first_promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve("GeeksforGeeks...!!");
    }, 1000);
});
  
let second_promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve("JavaScript......!!");
    }, 2000);
});
  
let third_promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve("TypeScript...!!");
    }, 3000);
});
  
let promise_array = [first_promise, second_promise, third_promise];
Promise.allSettled(promise_array).then((result) => console.log(result));

Producción:

[
  { status: 'fulfilled', value: 'GeeksforGeeks...!!' },
  { status: 'fulfilled', value: 'JavaScript......!!' },
  { status: 'fulfilled', value: 'TypeScript...!!' }
]

Ahora que hemos visto cómo implementar el método Promise.allSettled(), veamos cómo implementar este método con la ayuda de las palabras clave async-await.

Ejemplo 2: En este ejemplo, crearemos tres promesas una tras otra (como hicimos en el ejemplo anterior). Cada promesa contendrá una función de temporizador diferente con diferentes tiempos de espera. Luego, crearemos una función con la palabra clave asíncrona prefijada y, dentro de ella, capturaremos o almacenaremos nuestro resultado usando la palabra clave await . Luego, usaremos el método Promise.allSettled() que tomará las tres promesas como entrada en forma de array (o un objeto iterable) y ejecutará el resultado según su rol.

Javascript

let first_promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve("GeeksforGeeks...!!");
    }, 1000);
});
  
let second_promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve("JavaScript......!!");
    }, 2000);
});
  
let third_promise = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve("TypeScript...!!");
    }, 3000);
});
  
async function displayResult() {
    let promise_array = [first_promise, second_promise, third_promise];
    let result = await promise_array;
    Promise.allSettled(promise_array).then((result) => console.log(result));
}
  
displayResult();

Producción:

[
  { status: 'fulfilled', value: 'GeeksforGeeks...!!' },
  { status: 'fulfilled', value: 'JavaScript......!!' },
  { status: 'fulfilled', value: 'TypeScript...!!' }
]

Publicación traducida automáticamente

Artículo escrito por amansingla 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 *