Connaitre la fin d'une fonction [Résolu]

Signaler
Messages postés
4
Date d'inscription
samedi 15 octobre 2005
Statut
Membre
Dernière intervention
8 janvier 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
Bonjour à tous, je vais essayer de vous expliquer mon souci ^^'.

Je veux pouvoir répéter une portion de code tous les X ms et une fois que le code a été répété ces X fois la fonction se termine. C'est à dire que je veux pouvoir dans une fonction faire quelque chose comme ça:

function principal()
{
   // Du code....
   function secondaire(temps_total, ms_entre_chaque_répétition, autres paramètres);
   // Ici je sais que la fonction secondaire est terminé
}

function secondaire(temps_total, ms_entre_chaque_répétition, autres paramètres)
{
   // Code
}

C'est par exemple pour pouvoir faire une diminution progressive dans la fonction principale et une fois que cette diminution est fini je peux faire une autre action.

Merci pour votre attention, si vous avez une idée please :)

6 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
bonjour,

principal : appeller secondaire
                           qui se rappelle elle même avec setTimeout "tant qu'il le faut"
                           et qui en fin fait l'autre action.
               fin de la fonction principale.. plus d'intructions

dans principal, on pourrait tester une variable positionnée en fin de secondaire
    derrière l'appel, avec un setTimeout, sinon on monopoliserait
    tout le cpu ( ou presque )

Cordialement

           [mon Site] [M'écrire]  Bul         
Messages postés
4
Date d'inscription
samedi 15 octobre 2005
Statut
Membre
Dernière intervention
8 janvier 2009

J'avais essayé en continuant la fonction principale après un setTimeout réglé pour se lancer après la temps total de la fonction secondaire.
Mais cette solution me plaisait pas trop et si j'ai bien compris la solution que tu me propose fait ça en vérifiant en plus que la fonction s'est correctement terminé.
J'ai l'impression que y'as pas vraiment le choix ^^' Et puis au final c'est bien comme technique. 

Je vais faire comme ça, je te remercie pour ton aide.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>y' a pas vraiment le choix
oh... surtout en js... on peut toujours faire ça de 65895 manières
jesusonline par exemple ( de mémoire d'Alzheimer ) nous à proposé
     un script "sophistiqué" pour attendre la fin d'une fonction
      jette-s-y un œil ? il doit y en avoir d'autres ici même (?)
>>c'est bien...
je ne sais pas si c'est bien, mais ça fonctionne
et c'est tout simple ( donc, déjà je comprend )

          [mon Site] [M'écrire] Bul         
Messages postés
4
Date d'inscription
samedi 15 octobre 2005
Statut
Membre
Dernière intervention
8 janvier 2009

Ah bon ok ^^
C'est quand même particulier, on ne peut pas détecter la fin de cette fonction parce qu'elle se répète.
 
Enfin si il faudrais compter le nombre de fois qu'elle se répète pour trouver le moment où elle se déclenche pour la dernière fois. Je vais chercher un peu si je trouve des infos la dessus, désolé de pas avoir suffisament cherché...
Messages postés
4
Date d'inscription
samedi 15 octobre 2005
Statut
Membre
Dernière intervention
8 janvier 2009

http://www.brico-info.com/post/2007/06/04/131-fonction-waitfor-javascript



Une fonction Wait for(fonctionAexecuter,condition, interval, fin) c'est ce que j'ai trouvé de mieux (j'ai rien trouvé d'autre en fait ^^).

Bon ben je pense que j'ai ce qu'il me faut, enfin si jamais quelque connait une solution plus simple, ou plus rapide ou plus joli, faites moi signe :)
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>on ne peut pas détecter la fin de cette fonction parce qu'elle se répète.
non, non. on ne peut pas directement détecter la fin d'une fonction tout court.
          [mon Site] [M'écrire] Bul