Nodejs - Loop Callbacks

shoxxdj -  
Xavierdu34 Messages postés 223 Statut Membre -
Bonjour,

Je rencontre un problème, disons de logique avec Node js.
N'étant pas très habitué à ce genre de programation..

Ce que je veux faire :
Apeller une API avec X valeurs contenues dans un tableau devices.
Récupérer les résultats de cette api dans un tableau que je parserais dans ma vue index.ejs.
app.get('/',function(req,res){
 running_images=[];
  for(var i=0;i<devices.length;i++)
  { 
   request('appelapi',function(error,response,body)
   {
    if(!error && response.statusCode==200)
    {
     running_images.push(response);
    }
   });
  }
  res.render('index.ejs',{res:running_images});


Cependant avec un tel code, la variable running_images est vide lorsqu'elle est passée à la vue ( le temps d'appel de cette api est assez long .. )
j'ai cru comprendre qu'il y avais une histoire de callbacks. mais je n'arrive pas à la mettre en pratique dans mon cas ...

Je vous remercie d'avance :D



EDIT: Précision du langage dans la coloration syntaxique.

1 réponse

  1. Xavierdu34 Messages postés 223 Statut Membre 21
     
    Bonjour,

    peut être une idée du genre :

    app.get('/',function(req,res){
     running_images=[];
      for(var i=0;i<devices.length;i++)
      { 
       request('appelapi',function(error,response,body)
       {
        if(!error && response.statusCode==200)
        {
         running_images.push(response);
        }
       });
    if(devices.length == i) { res.render('index.ejs',{res:running_images}); }
      }
     
    0
    1. Xavierdu34 Messages postés 223 Statut Membre 21
       
      Et je devais être fatigué hier soir, la ligne 12 c'est plutôt :
      if(devices.length == i-1) { res.render('index.ejs',{res:running_images});
      0