Qual é a diferença entre Promise.all e Promise.any?
sobes.tech IA
Resposta da IA
Promise.all espera que todas as promessas em um objeto iterável sejam concluídas. Se todas as promessas forem concluídas com sucesso, ela retorna uma promessa que se resolve com um array de resultados na mesma ordem das promessas de entrada. Se pelo menos uma promessa for rejeitada, ela retorna uma promessa rejeitada com o erro da primeira promessa rejeitada.
Promise.any espera que qualquer das promessas em um objeto iterável seja concluída. Assim que qualquer promessa for concluída com sucesso, ela retorna uma promessa que se resolve com o valor dessa promessa. Se todas as promessas forem rejeitadas, ela retorna uma promessa rejeitada com um AggregateError, contendo um array de erros de todas as promessas rejeitadas.
Comparação:
| Critério | Promise.all | Promise.any |
|---|---|---|
| Condição de sucesso | Todas as promessas concluídas com sucesso | Qualquer promessa concluída com sucesso |
| Condição de erro | Qualquer promessa rejeitada | Todas as promessas rejeitadas |
| Resultado de sucesso | Array de resultados (na mesma ordem das promessas de entrada) | Valor da primeira promessa concluída |
| Resultado de erro | Erro da primeira promessa rejeitada | AggregateError com um array de erros de todas as promessas rejeitadas |
| Uso | Dependência de todas as operações assíncronas | Dependência de qualquer uma das operações assíncronas |