Sobes.tech
Junior

Nome as ferramentas que utilizou para escrever chamadas assíncronas.

sobes.tech IA

Resposta da IA

O JavaScript oferece várias ferramentas para trabalhar com chamadas assíncronas:

  • Funções Callback: Abordagem clássica, onde uma função é passada como argumento para outra função e é executada após a conclusão da operação assíncrona.

  • Promises: Objetos que representam um valor futuro ou um erro de uma operação assíncrona. Simplificam a cadeia de chamadas assíncronas e o tratamento de erros.

    // Exemplo de uso de promises
    fetch('/api/data')
      .then(response => response.json()) // Tratamento de resposta bem-sucedida
      .then(data => console.log(data)) // Trabalhar com os dados recebidos
      .catch(error => console.error('Erro:', error)); // Tratamento de erros
    
  • Async/await: Açúcar sintático sobre as promises, permitindo escrever código assíncrono em um estilo mais síncrono, o que melhora a legibilidade.

    // Exemplo de uso de async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Espera a conclusão do fetch
        const data = await response.json(); // Espera pelo parsing do JSON
        console.log(data);
      } catch (error) {
        console.error('Erro:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): API básica para fazer requisições HTTP no navegador. Mais de baixo nível em comparação com fetch e requer mais código para lidar.

    // Exemplo de uso de XMLHttpRequest
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Requisição assíncrona
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Erro:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Erro de rede');
    };
    xhr.send();
    
  • Fetch API: API moderna e mais flexível para fazer requisições HTTP, baseada em promessas.

    // Exemplo de uso do Fetch API
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Erro:', error));
    
  • Bibliotecas para trabalhar com requisições HTTP: Por exemplo, axios (para navegador e Node.js) ou jQuery.ajax(). Elas simplificam e padronizam a execução de requisições assíncronas.

    // Exemplo de uso do Axios
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Erro:', error));
    

A escolha da ferramenta depende da especificidade da tarefa e do contexto do projeto. Fetch e async/await são abordagens modernas e recomendadas para a maioria dos casos.