Partage
  • Partager sur Facebook
  • Partager sur Twitter

Callback simple

Problème de grand débutant

Sujet résolu
    30 mars 2015 à 16:40:19

    Bonjour, 

    je me décide à poster ici après avoir retourné la moitié d'internet ... 
    Qu'on ce le dise ... Je ne comprend pas les callback ... Je sais à quoi il servent mais non pas moyen de comprendre comment on les utilises.

    J'ai une fonction, et j'ai besoin d'attendre qu'elle retourne son résultat pour éxécuter une autre fonction qui prend en paramètre cette fameuse valeur de retour..

    Bref si quelqu'un avait quelque seconde de son temps à m'accorder, pour m'expliquer avec des mots simple comment on se sert des callback.

    Merci d'avance !  

    PS : Je tourne avec Node.js, mais je ne pense pas que cela change quoi que ce soit. 

    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2015 à 17:02:22

      Bonjour,

      Si tu veux définir tes propres callback, il faut prévoir que la fonction puisse l'appeler, soit définir la fonction comme ceci:

      function maFonction(params, callback){
          //faire des choses
          //on a fini de faire des choses : on lance le callback
          callback(params);
      }

      En imaginant que params est un tableau de paramètres)

      ensuite tu déclare la fonction qui doit être exécutée en tant que callback :

      function zeCallback(params){
          //faire d'autres choses
      }

      Et tu lance ta première fonction comme suit:

      maFonction(param, zeCallback);
      

      Et... voilà!

      Si ce n'est pas toi qui définie la fonction de départ, tu peux toujours créer ta fonction qui appèle celle qui est prédéfinie.

      • Partager sur Facebook
      • Partager sur Twitter
        30 mars 2015 à 17:16:18

        Mon dieux ça semble pourtant simple quand c'est bien expliqué ! 
        Je te remercie, tu à gagner un +1 !!

        Pas sur d'avoir encore tout compris au poil, mais c'est plus clair que ce que j'ai lu sur internet jusque là !
        (D'ailleur openclassroom n'à rien à dire à ce sujet ... )

        Merci encore, et je revient vers vous si quelque chose cloche !  

        • Partager sur Facebook
        • Partager sur Twitter
          30 mars 2015 à 18:04:28

          Dans Node.js la notion de callback est très IMPORTANTE, car node.js possèdent une API entièrement asynchrone, les callbacks permettent donc de récupérer le résultat ou l’erreur d’une action asynchrone

          En gros la callback remplace les mots clef return et throw dans une fonction asynchrone, par exemple une implémentation de  la fonction factorielle en asynchrone :

          function Fact(n,callback)
          {
          	if(n>1)
          		setImmediate(Fact,n-1,function(res) { callback(res*n) }); 
          	else
          		setImmediate(callback,1);
          	
          }

          La fonction setImmediate redonne la main à la boucle d’évènements de node.js, cela permet de paralléliser toutes tes action même si node.js  et mono-threadé

          Ainsi le script suivant :

          Fact(10,function(res)
          {
          	console.log('fact 10 : ',res)
          });
          
          Fact(3,function(res)
          {
          	console.log('fact 3 : ',res)
          });

          A pour résultat :

          fact 3 :  6
          fact 10 :  3628800



          • Partager sur Facebook
          • Partager sur Twitter
          ODE.js : portage JavaScript du célèbre moteur physique 3D Open Dynamics Engine
            30 juillet 2018 à 10:30:52


            Xia a écrit:

            Bonjour,

            Si tu veux définir tes propres callback, il faut prévoir que la fonction puisse l'appeler, soit définir la fonction comme ceci:

            function maFonction(params, callback){
                //faire des choses
                //on a fini de faire des choses : on lance le callback
                callback(params);
            }

            En imaginant que params est un tableau de paramètres)

            ensuite tu déclare la fonction qui doit être exécutée en tant que callback :

            function zeCallback(params){
                //faire d'autres choses
            }

            Et tu lance ta première fonction comme suit:

            maFonction(param, zeCallback);
            

            Et... voilà!

            Si ce n'est pas toi qui définie la fonction de départ, tu peux toujours créer ta fonction qui appèle celle qui est prédéfinie.

            Je vais peut etre passer pour un idiot, mais le parametre callback il s'agit bien la d'un nom lambda pour un parametre fonctionnel pour lui dire que cette fonction doit juste s'executer a la fin?

             Puis ensuite pour le moment ou on utilise "maFonction(param, zeCallback)" en gros on met en argument la declaration de la fonction "zeCallback"  c'est tout ? 

            Je dois apprendre sur le tas nodeJs deso ^^' 
             

            • Partager sur Facebook
            • Partager sur Twitter
              14 août 2018 à 18:03:31

              J'imagine que tu as essaye depuis mais... oui, tu peux l'appeler comme tu veux. Ricku a meme donne un exemple avec une fonction anonyme

              • Partager sur Facebook
              • Partager sur Twitter

              Callback simple

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown