Bonjour,
dans mon serveur nodejs, j'ai une fonction qui doit appeler une API externe.

L'objectif est de 1) récupérer tous les items, 2) pour chaque item, récupérer des données d'historique supplémentaires en faisant une nouvelle requête axios.

Voila ce que j'essaie de faire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
app.get('/api/items',async function(req, res) {
 
    var url=`${API}/resources/items;
 
    axios.get(url)
        .then(response => {    
          var results = [];      
          response.data.entities.forEach(function(el){            
            var itemId = util.getJobId(el);
            getHistory(itemId).then(res => function(res){
              console.log(res);
              Array.prototype.push.apply(el, res);
              console.log(el)
              results.push(el);
            });
          });
            res.send(results);
        })
        .catch(error => {
          console.log(error);
        });
  });
 
async function getHistory(uid) {
  try {
    var url_history=`${API}/resources/${uid}/history/`;
      let res = await axios({
          url: url_history,
          method: 'get',
          timeout: 8000,
          headers: {
              'Content-Type': 'application/json',
          }
      })
      return res.data.entities[0]
  }
  catch (err) {
      console.error(err);
  }
}
Pour chaque item, à l'aide de son id, je souhaite récupérer ces informations d'historique(donc au sein d'une boucle je fais des requêtes getHistory) et rajouter ces datas à l'element existant. Puis mettre tous les éléments dans un tableau results ( Ainsi pour chaque item j'aurai les données de base + les données de son historique)
Or au final, mon res.send(results) renvoie un tableau vide

Auriez vous une idée ??
Merci par avance