Função só retorna undefined

1 resposta
M

Estou iniciando os estudos de JavaScript/ jQuery e estou com dificuldades no retorno de uma função

var numeroDePaginas = (function() {

use strict;

var qtd;

$.getJSON(servlet/Paginas?uf=RJ&callback=?”, function(retorno) {

qtd = retorno.paginas;

console.log(qtd);  // Primeiro Teste

});

console.log(qtd);

return qtd;  // Segundo teste

});

numeroDePaginas ();

O Servlet funciona perfeito, no primeiro teste retorna 30 (valor esperado), no segundo teste retorna undefined
Alguem pode dar um help?

1 Resposta

A

GetJson é uma chamada assíncrona. Quando sua função retorna qtd, a chamada de getJson ainda está sendo executada.

O comum para isso é passar um callback para sua função quando o json retornar. Ou usar promises.

Criado 10 de junho de 2014
Ultima resposta 10 de jun. de 2014
Respostas 1
Participantes 2