Skip to content

Instantly share code, notes, and snippets.

@jonasporto
Forked from anonymous/capturaEndereco.js
Last active January 21, 2016 20:19
Show Gist options
  • Save jonasporto/d75cd5202071497040e3 to your computer and use it in GitHub Desktop.
Save jonasporto/d75cd5202071497040e3 to your computer and use it in GitHub Desktop.
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
*/
}
@jonasporto
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment