Attendre fin de fonction JS [Résolu/Fermé]

Signaler
-
Messages postés
4310
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
-
Bonjour,

J'ai actuellement un soucis en JS.

Je voudrais que mes fonctions s'éxécutent à la suite, mais il semblerait que la dernière fonction s'éxecute avant que les autres soient terminées.

loadMenu1(); // Charge un select avec des choix
loadMenu2(); // Charge un deuxième select
search(); // Effectue la recherche avec les valeurs des select


Sauf que dans la troisième fonction il me trouve que les valeurs des select sont à nul :(

Any idea ?

5 réponses

Messages postés
4310
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
761
Hello,

Gros problème de Javascript que d'avoir tendance à se mélanger les pinceaux... Je ne connais pas de solution simple : il faut peut-être modifier tes fonctions de manière à ce qu'elle renvoie "true" à la fin de leur traitement.

Ensuite tu fais :

if (loadMenu1()){
   if (loadMenu2()){
      search();
   }
}

Je ne garanti rien !
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Bonjour Mihawk,

Parfait, ça marche exactement comme je le voulais ;)

Merci beaucoup bonne journée !
En fait j'ai du avoir un "lag chanceux", après vérification ça ne marche pas à chaque fois :/
Messages postés
4310
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
761
Ah dommage.

Bon et avec une file...

var fns = array("loadMenu1()", "loadMenu2()", "search()"); 
for (var i=0 ; i<fns.length ; i++){ 
   eval(fns.shift()); 
} 


Je pense vraiment pas que ça fonctionne mais bon.
Sinon faut mettre des setTimeout !

Mihawk
"La rigoureusité fait la qualité"
Oh je crois que j'ai trouvé le truc dégueulasse qui pourrait m'aider en fait

var temp = 0;
func1();
while (temp != 1)
    ;
func2();
while (temp != 2)
    ;
func3();


Sachant que func 1 set temp a 1 a la fin de son exec, et func2 a 2

Merci pour ton aide en tout cas, ça m'a mit sur cette piste ;)

Bonne journée
Messages postés
4310
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
761
Powa pas mal !

Et sinon pourquoi ne pas plutôt appeler la méthode 2 à la fin de la méthode 1, et la 3 à la fin de la 2 ? :)