-
-
Save jonasporto/d75cd5202071497040e3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
capturaEnderecoUsuario: function() { | |
var me = this; | |
/** | |
* Quando o javascript olha pra Ext.Ajax.request, | |
* ele não tem como prever quando isso retornar. | |
* Por ser uma requisição externa pode ser muito rápido ou demorar muito por demandar processamento. | |
* Então, como ele resolve isso ? | |
* Ele te promete(promisse) que vai te dar uma resposta de sucesso(success) ou erro(failure) assim que acabar a requisição. | |
* e passa para o proximo passo sem bloquear seu codigo. | |
*/ | |
Ext.Ajax.request({ | |
url: Salao.app.servidor_dados + 'capturaEnderecoUsuario', | |
async: false, | |
params: { | |
codigo_usuario: me.codigo_usuario | |
}, | |
success: function (conn, response, options, eOpts) { | |
var result = Ext.decode(conn.responseText); | |
//Pegando logradouro do usuário retornado pela requisição ajax | |
var logradouro = result[0]['logradouro_usuario']; | |
//Pegando número do usuário retornado pela requisição ajax | |
var numero = result[0]['numero_usuario']; | |
//Pegando bairro do usuário retornado pela requisição ajax | |
var bairro = result[0]['bairro_usuario']; | |
//Pegando cidade do usuário retornado pela requisição ajax | |
var cidade = result[0]['cidade_usuario']; | |
//Pegando estado do usuário retornado pela requisição ajax | |
var estado = result[0]['estado_usuario']; | |
geolocalizacao = me.capturaGeolocalizacaoUsuario(logradouro, numero, bairro, cidade, estado); | |
me.PreencheGeolocalizacao(geolocalizacao); | |
}, | |
//Caso não tenha conseguido fazer a requisição | |
failure: function (conn, response, options, eOpts) { | |
//Chamando função responsável por mostrar caixa de mensagem | |
me.messageBox_erroDeRede(); | |
} | |
}); | |
/** | |
* O código que estiver por aqui vai ser executado independente da requisição já tiver retornado ou não (pula para o proximo passo lembra ?). | |
* então se você depender de algo que vai estar dentro do success (alguma variavel que você atribui valor), | |
* quando for executado esse trecho do codigo, ela ainda não vai existir. | |
* logo var geolocalizacao não vai ter valor aqui | |
*/ | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
logo capturaEnderecoUsuario não retorna nada, mas ela pode chamar funções dentro de success, para utilizar os dados que recebeu de resposta da requisição.