Connaitre la fin d'une fonction

Résolu
Angelblade Messages postés 4 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 8 janvier 2009 - 8 janv. 2009 à 10:26
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 9 janv. 2009 à 07:51
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

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 janv. 2009 à 10:55
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         
3
Angelblade Messages postés 4 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 8 janvier 2009
8 janv. 2009 à 16:41
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.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
8 janv. 2009 à 16:52
>>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         
0
Angelblade Messages postés 4 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 8 janvier 2009
8 janv. 2009 à 17:16
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é...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Angelblade Messages postés 4 Date d'inscription samedi 15 octobre 2005 Statut Membre Dernière intervention 8 janvier 2009
8 janv. 2009 à 17:34
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 :)
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
9 janv. 2009 à 07:51
>>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         
0
Rejoignez-nous