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

GET sem retorno na função obterPlacar

Pessoal, estou a um bom tempo tentando entender este trecho mais não consegui, já pesquisei no google e etc mas ta dificl.. rsrs.. Não entendo porque esta função abaixo não retorna nada: (nem entra no loop)


function atualizaPlacar(){
  var teste = [];
  $.get("http://localhost:3000/placar", function(dados){
     teste.push(dados);
  });
  teste.forEach(function(dados){
       console.log("teste");
  });

}

tentei também utilizar a função JSON.parse(dados) mas me retorna :

unexpected token o in json at position 1

entendo que fazer como esta no exercicio resolve, porém, gostaria de entender porque qnd adiciono o retorno do get em um array ele n me retorna nada e quando tento converter o retorno em um Json ele da erro.

Valeu novamente galera,

2 respostas
solução!

Se você rodar direto o endereço http://localhost:3000/placar e ele retornar dados, o problema então é na chamada, já que ela é assíncrona, ou seja, quando você manda fazer um GET, o script não fica esperando o retorno, ele continua a execução, então você acaba fazendo o loop de um array vazio.

Neste caso, você deve executar o loop depois do retorno dos dados, então teria que alterar o código para algo assim:

  var teste = [];
function atualizaPlacar(){

  $.get("http://localhost:3000/placar", function(dados){
     teste.push(dados);
    lerResultados();
  });


}

function lerResultados(){
     teste.forEach(function(dados){
       console.log("teste");
  });
}

Daniel, valeu pela respota. Neste caso eu poderia fazer o loop dentro do get, assim como esta no exercicio. Desculpe, acho que expliquei errado. O retorno exite e armazena no vetor, porém, parece que primeiro armazena um valor em branco e é isso que me parece o motivo de ele não percorrer. Quando você olha no console ele aparece algo do tipo -> [] só que quando vc clica ele abre e da pra ver que existem 2 objetos dentro..

Será que não é possivel armazenar o retorno do get em uma matriz para posteriormente percorrer por ela. (Sem ser no momento do retorno).

Obrigado pela ajuda, Abraços.

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