⊗jsSpPrmAr 170 of 294 menu

Trabalhando com arrays de promessas em JavaScript

Agora vamos analisar dois métodos úteis que permitem trabalhar com arrays de promessas. O método Promise.all permite executar o código após a conclusão de todas as promessas passadas a ele na forma de um array, e o método Promise.race aguarda o carregamento da primeira promessa do array, descartando as demais.

Ambos os métodos retornam uma nova promessa como resultado. Para o método Promise.all, o resultado dessa promessa será um array com os resultados de todas as promessas passadas (a ordem dos resultados corresponde à ordem das promessas no array), e para Promise.race - o resultado da primeira promessa que for resolvida.

Vamos ver na prática. Suponha que temos um array de promessas:

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

Vamos usar Promise.all para aguardar a conclusão do carregamento de todas as promessas do nosso array:

Promise.all(promises).then(function(res) { console.log(res); // exibirá [1, 2, 3] - os resultados de todas as promessas });

Agora, vamos usar Promise.race para aguardar a conclusão do carregamento da primeira das promessas:

Promise.race(promises).then(function(res) { console.log(res); // exibirá 1 - o resultado da primeira promessa resolvida });

Se pelo menos uma das promessas no array for rejeitada, a promessa com o resultado passará imediatamente para o estado rejected. Portanto, a exceção gerada pode ser capturada da maneira usual, que você já aprendeu, por exemplo, usando catch:

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

Crie uma função que retorna uma promessa, dentro da qual é definido um atraso aleatório de 1 a 10 segundos. Que a promessa retorne esse atraso como seu resultado. Usando um loop e sua função, preencha um array com 10 promessas.

Usando o array de promessas da tarefa anterior, faça com que o resultado da primeira promessa resolvida seja exibido no console.

Usando o array de promessas da tarefa anterior, faça com que a soma dos resultados de todas as promessas seja exibida no console.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar