Junior — Middle
Qual é a diferença entre as funções Promise.all e Promise.any ao lidar com promessas?
sobes.tech IA
Resposta da IA
Promise.all aceita um array de promessas e retorna uma nova promessa que:
- resolve quando todas as promessas do array são concluídas com sucesso, retornando um array de resultados na mesma ordem;
- rejeita se pelo menos uma das promessas for rejeitada, imediatamente com o erro dessa promessa.
Promise.any aceita um array de promessas e retorna uma promessa que:
- resolve assim que qualquer uma das promessas for concluída com sucesso, retornando o resultado dessa promessa;
- rejeita se todas as promessas forem rejeitadas, retornando um AggregateError com os erros de todas as promessas.
Exemplo:
const p1 = Promise.reject('Erro 1');
const p2 = Promise.resolve('Sucesso 2');
const p3 = Promise.resolve('Sucesso 3');
Promise.all([p1, p2, p3])
.then(console.log) // não será chamado
.catch(console.error); // exibirá 'Erro 1'
Promise.any([p1, p2, p3])
.then(console.log) // exibirá 'Sucesso 2'
.catch(console.error);