O código obtido ao final da aula é o seguinte:
async function buscaEndereco(cep) {
try {
let consultaCEP = await fetch(`https://viacep.com.br/ws/${cep}/json/`)
let consultaCEPConvertida = await consultaCEP.json();
if(consultaCEPConvertida.erro) {
throw Error('Esse CEP não existe');
}
console.log(consultaCEPConvertida);
return consultaCEPConvertida;
} catch(erro) {
console.log(erro);
}
}
let ceps = ['01001000', '01001001'];
let conjuntoCeps = ceps.map(valores => buscaEndereco(valores));
console.log(conjuntoCeps);
Promise.all(conjuntoCeps).then(respostas => console.log(respostas));
As dúvidas que me ocorram, foram as seguintes:
Primeiro, sobre o bloco da função try.
Porque o if que executa o throw Error deve estar em try e não em catch?
E quando fazemos consultaCEPConvertida.erro o que estamos fazendo realmente?
Agora, sobre Promise.all e .then():
Se Promise.all retorna uma única promise quando todas as promises já estiverem resolvidas porque usamos .then em seguida?