Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
Tenho um plugin que contém um método ajax embutido. Este ajax retorna um objeto json.
Preciso deixar esta função ajax assíncrona, onde no final dela eu gostaria de pegar o seu retorno e fazer outras funcionalidades, como no exemplo abaixo.
$minhaVar = '';
$.ajax(
{
url : 'pagina.php',
type : 'POST',
dataType : 'json',
contentType : 'application/json; charset=utf-8',
async : true,
complete : function(data)
{
$minhaVar = data;
}
});
/ Ok. Agora eu pego $minhaVar e faço o que quiser /
for(i = 0; i < $minhaVar.length; i++)
{
// etc
}
Neste exemplo é notável que vai dar problema, pois como a função é assíncrona não vai executar o laço corretamente.
A pergunta é: Como corrigir isto de forma que se mantenha a assincronia?
Obrigado.
Obrigado cara.
Se você puder me dar um exemplo com base no que fiz eu lhe agradeceria.
putz.. tem uma tonelada de exemplos no link que eu postei.. lê e tenta fazer.
objeto Deferred
http://wbruno.com.br/2012/01/23/exemplo-de-uso-jquery-deferred-simples/