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?