Exercício 3


a) Comparação:

Ambos os códigos têm o mesmo propósito, que é buscar informações do clima de uma localidade específica. No entanto, eles utilizam técnicas diferentes para alcançar esse mesmo objetivo.

  • Ex2-encadeamento-fetch
    1. A função fetch('https://ipapi.co/json/') é chamada para obter os dados de localização do usuário.
    2. O primeiro callback .then é executado quando a resposta é recebida. Ele converte a resposta para o formato JSON.
    3. O segundo callback .then é chamado com os dados convertidos do passo anterior. Ele usa a latitude e longitude dos dados para fazer outra requisição fetch e obter a previsão do tempo local.
    4. O terceiro callback .then é executado quando a resposta da segunda requisição fetch é recebida. Ele converte a resposta para o formato JSON.
    5. O quarto callback .then é chamado com os dados convertidos do passo anterior. Ele atualiza as informações de temperatura e velocidade do vento na página.
    6. Se ocorrer algum erro em qualquer etapa, o callback .catch é executado, registrando o erro no console.

    Em resumo, o primeiro código usa o método fetch() para fazer uma requisição HTTP para o servidor. Ele usa os dados de latitude e longitude buscados para fazer outra requisição HTTP para o servidor para obter informações de clima. Por fim, ele atualiza as informações de temperatura e velocidade do vento na página da web. Se houver um erro, ele é registrado no console.

  • Ex4-encadeamento-await
    1. A palavra-chave async indica que a função contém operações assíncronas.
    2. A palavra-chave await é usada para pausar a execução da função até que uma promessa seja resolvida ou rejeitada.
    3. A função fetch é chamada para obter os dados de localização do usuário, e a resposta é atribuída a response1.
    4. Se a resposta não for bem-sucedida (!response1.ok), um erro é lançado.
    5. O método response1.json() é usado para analisar o corpo da resposta como JSON, e o resultado é atribuído a local.
    6. Outra requisição fetch é feita para obter a previsão do tempo local, usando a latitude e longitude de local.
    7. O tratamento de erro e a análise JSON são feitos de forma similar para response2, e o resultado é atribuído a clima.
    8. As informações de temperatura e vento na página são atualizadas com os valores de clima.
    9. Se ocorrer algum erro dentro do bloco try, o bloco catch é executado. O erro é registrado no console, e um alerta é exibido ao usuário.
  • Resumo
    Em geral, ambos os códigos alcançam o mesmo resultado, que é obter os dados de localização do usuário e a previsão do tempo local, e atualizar os elementos correspondentes na página. O segundo código, usando a sintaxe async/await, oferece uma forma mais legível e estruturada de lidar com operações assíncronas em comparação com a cadeia de promessas usada no primeiro código.

b) Prints:

Inicio (com corpo dos response 1 e 2):
print do inicio do item b
Fim (com promise fullfilled):
print do fim do item b