IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Fonction callback


Sujet :

APIs Google

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Par défaut Fonction callback
    Bonjour,

    Je travaille sur un script googlemap, j'effectue une requete pour récupérer les informations de la position d'un point:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
          oParams = {'latLng': new google.maps.LatLng(iLat,iLng), language: 'fr', country:'fr'};
     
          this.oGeoCodeur.geocode(oParams,function(aResult, sStatus) {
             if (sStatus == google.maps.GeocoderStatus.OK) {
               if(aResult[0]) {
                  sLocalisation = aResult[0].formatted_address;
                  $('#'+sDiv).html(sLocalisation);
                  return sLocation;
               }
             }
          });
    J'ai besoin de récupérer la valeur de aResult[0].formatted_address; Ici je la récupère bien mais j'en ai besoin en dehors de cette fonction callback, hors impossible de récupérer cette valeur, ni en affectant une variable globale ni avec le return.

    Comment puis-je m'en sortir?

    merci d'avance

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Bonjour,

    peut-être une erreur de copier/coller mais attention sLocalisation vs sLocation.
    Autrement effectivement le return ne te servira à rien, mais tu peux appeler une fonction dans ta méthode anonyme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    oParams = {'latLng': new google.maps.LatLng(iLat,iLng), language: 'fr', country:'fr'};
     
          this.oGeoCodeur.geocode(oParams,function(aResult, sStatus) {
             if (sStatus == google.maps.GeocoderStatus.OK) {
               if(aResult[0]) {
                  sLocalisation = aResult[0].formatted_address;
                  $('#'+sDiv).html(sLocalisation);
                  faireDesTrucsTropBienAvec( sLocalisation );
               }
             }
          });

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Par défaut
    Merci pour ta réponse mais j'ai dejà tester ca mais ce n'est pas ce dont j'ai besoin, il faudrait que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var result = null;
     
        if(this.oGeoCodeur) {
     
          oParams = {'latLng': new google.maps.LatLng(iLat,iLng), language: 'fr', country:'fr'};
     
          this.oGeoCodeur.geocode(oParams,function(aResult, sStatus) {
             if (sStatus == google.maps.GeocoderStatus.OK) {
               if(aResult[0]) {
                  result = aResult[0].formatted_address;
               }
             }
          });
    alert(result) // on a null alors qu'on veut aResult[0].formatted_address

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Le problème n'est pas de récupérer la valeur mais de comprendre à quel moment elle est disponible.
    Ton code appelle une fonction AJAX asynchrone, donc le code continue à être exécuté avant la réponse du serveur et au moment où tu fais ton alert, la réponse n'est pas encore revenue, ta valeur n'est donc pas encore accessible, d'où la proposition de gwyhom.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Par défaut
    yes, en regardant les autre posts j'ais compris que le problème venait de là.
    Donc est-il possible de figer la fonction le temps que la requete ajax soit terminée?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 8
    Par défaut
    En fait il faut que j'appelle la fonction callback de manière synchrone, comment faire cela?

Discussions similaires

  1. Fonction callback
    Par saibe dans le forum Linux
    Réponses: 4
    Dernier message: 19/01/2012, 10h41
  2. [debutant] fonction callback
    Par samipate dans le forum Langage
    Réponses: 5
    Dernier message: 09/10/2005, 14h59
  3. problème fonctions callback
    Par youp_db dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 02/10/2005, 14h47
  4. [Débutant] fonction CALLBACK
    Par tlt dans le forum MFC
    Réponses: 2
    Dernier message: 29/10/2004, 16h55
  5. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo