Partage
  • Partager sur Facebook
  • Partager sur Twitter

Recuperer Data en dehors de function

nodeJs - Node-rest-client

Sujet résolu
    24 octobre 2016 à 9:41:41

    bonjour,

    Pour recupérer les données d'une api rest , j'utilise le module node nommé node-rest-client

    var lstUsers = function() {
        var result;
        console.log("function lstUsers");
       var res = client.get(API+"/usagers/all", function (data, response) {
           result = data;
        });
        
    return result;
    }

    le soucis c'est que j'arrive a mettre mes "data" dans la variable "result" ou a avoir acces a mes donnés json en dehors de la function 

    Cordialement

    Ps: je continue de chercher

    • Partager sur Facebook
    • Partager sur Twitter
      24 octobre 2016 à 11:07:05

      Bonjour,

      C'est de l'asynchrome mon ami !

      En regardant les commentaires tu devrais comprendre tout seul comme un grand:

      Etape 1:

      // 1. Je suis ici, result est undefined
      var lstUsers = function() {
        var result;
        console.log("function lstUsers");
        var res = client.get(API+"/usagers/all", function (data, response) {
          result = data;
        });
        return result;
      }

      Etape 2:

      var lstUsers = function() {
        var result;
        // 2. Je suis ici, result est null
        console.log("function lstUsers");
        var res = client.get(API+"/usagers/all", function (data, response) {
          result = data;
        });
        return result;
      }

      Etape 3:

      var lstUsers = function() {
        var result;
        console.log("function lstUsers");
        var res = client.get(API+"/usagers/all", function (data, response) {
          result = data;
        });
        // 3. J'arrive ici a l'etape 3, donc result est toujours null
        return result;
      }

      Etape 4:

      var lstUsers = function() {
        var result;
        console.log("function lstUsers");
        var res = client.get(API+"/usagers/all", function (data, response) {
          result = data;
        });
        return result;
        // 4. Ah c'est bete pour toi, result est toujours null donc tu fais un return null
      }

      Etape 5:

      var lstUsers = function() {
        var result;
        console.log("function lstUsers");
        var res = client.get(API+"/usagers/all", function (data, response) {
          // 5. Mon service m'a enfin repondu
          result = data;
        });
        return result;
      }

      Etape 6:

      var lstUsers = function() {
        var result;
        console.log("function lstUsers");
        var res = client.get(API+"/usagers/all", function (data, response) {
          result = data;
          // 6. Ah enfin, result prend une valeur
        });
        return result;
      }


      Tu dois mettre en place un callback tout simplement.





      -
      Edité par Scion 24 octobre 2016 à 11:09:05

      • Partager sur Facebook
      • Partager sur Twitter
        24 octobre 2016 à 11:57:00

        Salut Scion,

        Merci pour ta réponse 

        j'ai essayé de mettre un Callback mais je suis pas sur de moi  et surtout de ou il faut mettre les fonctions :(.

        voici mon code

        var lstUsers = function() {
           var maFunction =  function(callback) {
                client.get(API+"/usagers/all",function(data,response) {
                  callback(data);
                });
        
            };
            var toto = function(tableau) {
               return tableau;
            };
            var result = maFunction(toto);
            console.log(result);
            //return result;
        };

        cordialement


        Edit : il me dit toujours que Résult est undefined

        -
        Edité par booster 24 octobre 2016 à 12:04:03

        • Partager sur Facebook
        • Partager sur Twitter
          25 octobre 2016 à 2:20:42

          Salut dsl de repondre aussi tardivement (avec le decallage horaire ce n'est pas evident, je vis au Japon).

          En fait ton code ne veut rien dire ...donc un peu normal que ca ne fonctionne pas. Ou c'est moi qui n'est rien compris.
          Je te propose une autre vision et tu me dis ce que tu en penses :

          1. Tu recuperes les donnees
          2. Une fois c'est dernier recuperee tu peux traiter les infos.

          moi j'aurai donc fait ca :

          var getAllUsagers =  function(callback) {
            client.get(API+"/usagers/all",function(data,response) {
              if (typeof callback === "function") {
                console.log("Etape 1 : Ok!");
                callback(data);
              }
            });
          };

          S'il n'y a pas d'erreur, tu peux tester la suite:

          getAllUsagers(function(usagers){
            // Is ready ...
            console.log("Etape 2 : Ok !");
            console.log(usagers);
          });

          -
          Edité par Scion 25 octobre 2016 à 2:27:16

          • Partager sur Facebook
          • Partager sur Twitter
            25 octobre 2016 à 9:02:16

            Salut Scion,

            Merci pour ta réponse.

            Cela fonctionne parfaitement je suis content j'ai passé toute ma journée d'hier à chercher :( 

            Merci beaucoup je met resolu

            • Partager sur Facebook
            • Partager sur Twitter

            Recuperer Data en dehors de function

            × 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