IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Comment proposer un callback dans une méthode ?


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut Comment proposer un callback dans une méthode ?
    Bonsoir,

    Bon ma question est mal posée alors je vais tenté de clarifier, je développe un petit objet en javascript, j'ai une méthode .login() et j'aimerais que l'utilisateur puisse avoir un callback en paramètre.

    J'utilise le javascript pour manipuler le DOM mais je n'ai jamais vraiment développé avec.

    L'idée serait que l'utilisateur puisse faire un peu comme avec l'API facebook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    FB.login(function(response) {
       if (response.authResponse) {
         //traitement...);
       }
     });
    Seulement je ne comprends pas comment proposer ce callback avec le paramètre dedans, j'imagine quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      this.login = function(function(res){
        //L'utilisateur peut écrire sa propre fonction de callback en y récupérant "res" en paramètre.
      })
      {
       //res = traitement...
      }
    Mais comment faire remonter le résultat du traitement dans le callback ? Avec les closures peut-être...?

    Bref tout cela est un peu flou pour moi !

    Merci pour vos conseils !!

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Salut pour un callBack il te faut appel ta function en incluant window['nom_function'] exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var selFunc = "mafunction";
    var o = "monparametre";
    fonction(window[selFunc],o);
    function fonction(func, param) { 
        func(param);
    };

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bonjour,

    Ta réponse m'intéresse beaucoup car je n'avais jamais vu ce mécanisme !

    Cependant je ne saisis pas très bien ton exemple, je vais le reprendre et exposé les points qui me bloquent:

    Pour commencer je ne saisis pas la différence entre ces deux méthodes (et donc l'intérêt d'utiliser window[setFunc]):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var selFunc = "mafunction";
    var o = "monparametre";
    fonction(window[selFunc],o);
    function fonction(func, param) { 
        func(param);
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var selFunc = "mafunction";
    var o = "monparametre";
    function fonction(selFunc, o) { 
        selFunc(param);
    };
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var o = "monparametre";
    function fonction(selFunc, o) { 
        selFunc(param);
    };
     
    fonction("mafunction", o);
    Et j'anticipe ma question suivante, car si je n'ai pas tout très bien comprit j'ai pu me rendre compte en faisant des tests que seule ta méthode passe

    Si je veux donner la possibilité à l'utilisateur d'écrire une fonction anonyme (son callback) directement en paramètre de ma fonction ("fonction" pour reprendre ton exemple), comment faire pour "déclarer/amorcer ?" un callback comme tu l'as fait avec la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fonction(window[selFunc]);
    Merci pour les explications !

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    La réponse est simple window["tafunction"] l'object window est directement attaché à ta méthode donc accessible comme une vrai function.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 22/12/2008, 16h07
  2. Comment insérer un boolean dans une méthode
    Par Msysteme dans le forum Hibernate
    Réponses: 3
    Dernier message: 08/09/2008, 23h28
  3. Réponses: 5
    Dernier message: 07/08/2008, 19h53
  4. Réponses: 1
    Dernier message: 10/10/2006, 16h14
  5. Réponses: 4
    Dernier message: 27/06/2005, 20h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo