⊗jsSpPrmAr 170 of 294 menu

Trabajo con arrays de promesas en JavaScript

Ahora analizaremos dos métodos útiles, que permiten trabajar con arrays de promesas. El método Promise.all permite ejecutar el código al finalizar todas las promesas, pasadas a él en forma de array, y el método Promise.race espera a que se cargue la primera promesa del array, descartando las demás.

Ambos métodos devuelven como resultado una nueva promesa. Para el método Promise.all el resultado de esta promesa será un array de resultados de todas las promesas pasadas (el orden de los resultados corresponde al orden de las promesas en el array), y para Promise.race - el resultado de la primera promesa que se complete.

Veamos en la práctica. Supongamos que tenemos un array de promesas:

let promises = [ new Promise(resolve => setTimeout(() => resolve(1), 1000)), new Promise(resolve => setTimeout(() => resolve(2), 2000)), new Promise(resolve => setTimeout(() => resolve(3), 3000)), ];

Usemos Promise.all para esperar a que terminen de cargarse todas las promesas de nuestro array:

Promise.all(promises).then(function(res) { console.log(res); // mostrará [1, 2, 3] - resultados de todas las promesas });

Y ahora usemos Promise.race para esperar a que termine de cargarse la primera de las promesas:

Promise.race(promises).then(function(res) { console.log(res); // mostrará 1 - resultado de la primera promesa que se completó });

Si al menos una de las promesas en el array es rechazada, la promesa con el resultado inmediatamente pasará al estado rejected. Por lo tanto, la excepción generada se puede capturar de la forma usual, que ya han estudiado, por ejemplo, mediante catch:

Promise.all(promises).then(function(res) { console.log(res); }).catch(function(err) { console.log(err); });

Cree una función que devuelva una promesa, dentro de la cual se establezca un retraso aleatorio de 1 a 10 segundos. Que la promesa devuelva como resultado este retraso. Usando un ciclo y su función, llene un array con 10 promesas.

Usando el array de promesas de la tarea anterior, haga que se muestre en la consola el resultado de la primera promesa que se complete.

Usando el array de promesas de la tarea anterior, haga que se muestre en la consola la suma de los resultados de todas las promesas.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar