Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

JSON: como usar a resposta na página.

Olá,

Estou testando a requisição JSON usando o XMLHttpRequest e me deparei com a seguinte dúvida. Como eu retorno o valor recebido para uma variável (ou objeto)?

Tenho um HTML com o seguinte código:

<!DOCTYPE html>
<html lang="pt-br">
      <head>
              <meta charset="UTF-8"></meta>
              <title>Pacientes</title>
        </head>
        <body>
            <script type="text/javascript" src="api.js"></script>
            <script type="text/javascript">
                  var recebe = solicitaDados();
            console.log(recebe);
            </script>
</body>
</html>

Gostaria de usar a variável recebe para fazer manipulação dos dados, a função solicitaDados() está no api.js, segue o código:

function solicitaDados (){
      var xhr = new XMLHttpRequest();
      xhr.open("GET","https://api-pacientes.herokuapp.com/pacientes");
      xhr.send();
       xhr.addEventListener("load", function(){
                if(xhr.status == 200){
                  var resposta = xhr.response;
                    var pacientes = JSON.parse(resposta);
            return pacientes;
              }
      });
};

Fazendo desta forma porém o console.log(recebe) retorna undefined. Como faço para receber os dados fora da função? Obrigado.

6 respostas

Boa noite, Daniel! Como vai?

Esse assunto é tratado nessa aula do curso JavaScript: Programando na linguagem da web. Dá uma olhada lá e se sobrar alguma dúvida é só mandar aqui que eu te ajudo!

Grande abraço e bons estudos!


Bom dia Gabriel,

A minha dúvida surgiu exatamente desta aula. No exemplo da aula ele utiliza a própria função anônima para acrescentar os nomes na tabela. Mas eu gostaria de usar os dados fora da função, guardar eles em alguma variável ou pedir o retorno da função e poder utilizar os dados (como um Array por exemplo)

solução!

Daniel, para isso vc terá que trabalhar com Promise! Vc pode ver mais sobre isso nas aulas desse capítulo do curso JavaScript Avançado II: ES6, orientação a objetos e padrões de projetos. No entanto, eu não recomendo vc dar esse pulo agora para não quebrar o seu crescimento gradual de conhecimento!

Grande abraço e bons estudos!

Obrigado. Vou continuar os estudos e lá eu pergunto novamente se não conseguir.

Por nada, Daniel! Sempre que tiver qualquer dúvida é só mandar aqui no fórum!

Grande abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software