2
respostas

Obter o retorno da função que o GET executa como segundo paramentro

Observando o código, imaginei a possibilidade de usar uma função que valida a frase impressa com uma gerada. Essa função pegaria a frase impressa no navegador e a gerada posteriormente pela função "geraFraseDoServidor" e fizesse a comparação, se retornasse como iguais, ela executaria função novamente até ter uma frase diferente da impressa.

Para isso, eu preciso obter a frase do navegador, isso é fácil. E obter a frase do Servidor, isso também é fácil.

O que pega é que o geraFraseDoServidor, não está me devolvendo o return com a frase do servidor.

Isso tem a ver com a requisição assíncrono e que demora retornar os dados do servidor? Se sim, o que eu posso fazer para obter o retorno da função?

2 respostas

Bom dia, Juliano! Como vai?

O fato da requisição ser assíncrona realmente pode ter relação com o problema que vc está enfrentando! Contudo, só poderei ter certeza dando uma olhada no código feito por vc. Vc poderia colar aqui o trecho de código ao qual vc se refere? Daí darei uma olhada e tentarei te ajudar!

Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

function trocaFraseAleatoria(data) {
    var indiceFrase = gerarNumeroAleatorio(data);
    var fraseDoServidor = data[indiceFrase].texto;
    return  fraseDoServidor
}

Tenho uma função que é executada no carregar da pagina dentro da função ready $(document).ready(){}

function inserirFrase() {

    var servidor = 'http://localhost:3000/frases';
    $.get(servidor, frase)

}


function frase (data) {
    var indiceFrase = gerarNumeroAleatorio(data);
    var fraseDoServidor = data[indiceFrase].texto;
    $('#frase-texto').text(fraseDoServidor);

}

As duas são executadas, mas o return da trocaFraseAleatoria não me devolve uma frase, sempre vem como undefined, percebo que adicionando um console.log ela retorna depois de alguns segundos. Dado a essa fato, percebo que o return executa mas retorna undefined por não ter a resposta rapida, é isso?