Appel synchrone de callback

Appel synchrone de callback - HTML/CSS - Programmation

Marsh Posté le 12-01-2008 à 14:28:33    

Bonjour,
 
Je suis en train de développer un site web avec une googlemap intégrée ce qui m'oblige malheureusement a me mettre au javascript (API en javascript)...et je ne suis pas forcémnt trés à l'aise avec ce langage.
 
Jusqu'a maintenant, je n'avais rencontré aucun problème (enfin presque) mais se pose à moi un problème lié à l'appel de callbacks (apparement exécutés de façon asynchrone)
 
En gros, l'application demande à l'utilisateur une adresse de départ, et une adresse d'arrivée. Ensuite, grâce au geocoder fourni par l'API googlemap, je retrouve toutes les possibilitées d'adresses correspondantes à ce qu'il a entré.
 
Cela se fait de la facon suivante :

Code :
  1. ok=true;
  2. geocoder.getLocations(addressDep, function(response) {getPos(response,document.getElementById("choosedep" ))});
  3. geocoder.getLocations(addressArr, function(response) {getPos(response,document.getElementById("choosearr" ))});
  4. if (ok)
  5. {
  6. alert("c'est tout bon" );
  7. }


 
getLocations() : méthode de l'objet geocoder (GClientGeocoder) qui prend en paramètre une adresse (string) et une fonction de callback
addressDep et addressArr : les adresses de départ et d'arrivée issues des input
getPos() : fonction qui est appelée dans le callback et qui modifie la variable ok en fonction de plusieurs paramètre que je ne vais pas exposer ici
ok : variable booléenne modifiée dans getPos et qui teste si l'adresse entrée existe et si il n'y a qu'une adresse réelle correspondante (pour chaque input)
 
Mon problème : le test effectué à l'issu des deux appels n'est pas pertinent car la variable ok n'est pas encore modifiée (execution du callback dans un thread parallèle)
 
Ma question : est-il possible de rendre l'execution du callback synchrone ???
 
merci
 
Lantier!

Reply

Marsh Posté le 12-01-2008 à 14:28:33   

Reply

Marsh Posté le 12-01-2008 à 18:24:03    

Si tu arrives à accéder à des variables à l'intérieur et à l'extérieur du callback tu peux, en bouclant avec du while, sinon non.

Reply

Marsh Posté le 12-01-2008 à 19:15:40    

ok, c'est bien ce que je pensais faire du coup mais je me demandais s'il n'y avait pas moyen de faire ca plus proprement...
normalement ca posera pas de problème avec une variable globale !
 
merci bien pour la réponse, au moins maintenant j'en suis sur :D !
 
ciao!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed