Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diegohamaz1

Pegar callback de função

Recommended Posts

function CalculaDistanciaOUT(origem,saida) {
            var origem_f =str_replace(Array('(',')'),'',origem);
            var saida_f =str_replace(Array('(',')'),'',saida);
            var service = new google.maps.DistanceMatrixService();
            
            service.getDistanceMatrix(
              {
                  origins: [""+origem_f+""],
                  destinations: [""+saida_f+""],
                  travelMode: google.maps.TravelMode.DRIVING,
                   unitSystem: google.maps.UnitSystem.METRIC
              }, callback2);
        }
 
 
        function callback2(response, status) {
            if (status != google.maps.DistanceMatrixStatus.OK)
                $('#km_out').val(status);
            else {
                    var str = response.rows[0].elements[0].distance.text;
                    str = str.substring(0,(str.length - 2));
                    $('#km_out').val("");
                    $('#km_out').val(str);
                    return response.rows[0].elements[0].distance.text;
                $('#litResultado').html("<strong>Origem</strong>: " + response.originAddresses +
                    "<br /><strong>Destino:</strong> " + response.destinationAddresses +
                    "<br /><strong>Distância</strong>: " + response.rows[0].elements[0].distance.text +
                    " <br /><strong>Duração</strong>: " + response.rows[0].elements[0].duration.text
                    );
            }
        }

galera como posso pegar o retorno dessa função via

var = CalculaDistanciaOUT()

e eu guardo o resultado numa variavel so fica undefined

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem cara eu li a documentação porem todos testes eles jogam o retorno em um seletor , eu gostaria do retorno e tempo real, não estou conseguindo

         function CalculaDistanciaOUT(origem,saida) {
            console.log(origem);
            var origem_f =str_replace(Array('(',')'),'',origem);
            var saida_f =str_replace(Array('(',')'),'',saida);
            var service = new google.maps.DistanceMatrixService();
            
            service.getDistanceMatrix(
              {
                  origins: [""+origem_f+""],
                  destinations: [""+saida_f+""],
                  travelMode: google.maps.TravelMode.DRIVING,
                   unitSystem: google.maps.UnitSystem.METRIC
              }, callback2);
             return service;
        }
 
 
        function callback2(response, status) {
            if (status != google.maps.DistanceMatrixStatus.OK)
                $('#km_out').val(status);
            else {
                    var str = response.rows[0].elements[0].distance.text;
                    str = str.substring(0,(str.length - 2));
                    return response.rows[0].elements[0].distance.text; ------ EU QUERO ESSE RESULTADO
               
            }
        }
Vou receber varias coordenadas e vou trabalhar com os valores porem estou com esse problema do callback

    var calculo = CalculaDistanciaOUT(coordenada_1,coordenada_2);
console.debug("Entrou" + calculo);

no console fica assim Entrou [object Object] e quando dou o console dentro do callback pegando response.rows[0].elements[0].distance.text; ele me retorna o valor que preciso, entendeu do que preciso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É assincrono, vc nunca vai conseguir pegar o retorno.

 

Faça o que tem que fazer, sem "necessariamente pegar o retorno".

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o objetivo ? o que vc precisa fazer com essa variável ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu vou receber o valor e fazer comparações CalculaDistancia > variavel e nao queria jogar em um seletor que vai ficar muito ruim pra trabalhar entendeu?

 

mas se não tem jeito vou ter q jogar em um campo hidden e depois limpar toda hora

 

entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi. Pq "vai ficar ruim para trabalhar" ?

 

O que é "um seletor" ?

Vc pode fazer o calculo dentro do callback, chamando outras funções que vc precisar chamar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.