* A função recebe um array de promessas (assumimos que não está vazio) e retorna uma promessa.
* Se alguma das promessas passadas for resolvida (com sucesso),
então a promessa retornada é resolvida com esse valor.
* Se várias promessas forem bem-sucedidas,
então a promessa retornada é resolvida
* com o primeiro valor bem-sucedido, independentemente da ordem das promessas no array.
* Se todas as promessas forem rejeitadas,
então a promessa retornada é rejeitada com um erro AggregateError,
que agrupa todos os erros, levando em consideração a ordem das promessas.
* O AggregateError pode ser criado assim:
new AggregateError(errors, 'No Promise in any was resolved')
function any(promises) {
// seu código aqui
}