Hello,

Je suis en train de travailler sur un projet dans lequel j'ai besoins d'effectuer une reqête sur chaque éléments d'un tableau et ensuite de retourner un nouveau tableau avec les données recupérées à chaque requête. Pour cela j'utilise un forEach mais je n'obtiens jamais les données dans le même ordre et j'aimerais eviter cela..

Ce que je fais

Voici un extrait du pattern que j'utilise

const apiUrl = 'https://www.api.com/';
let vehicules = [];

function getVehiculesInfos(vehiculesList) {
  vehiculesList.forEach(vehicule => {
    request.get(apiUrl + 'ag_vehicle/' + vehicule.vehicle_id
    }, function (error, response, body) {
      vehicules.push(JSON.parse(body));
    });
  });
}

Ce que je veux

Je veux que le tableau vehicules respecte l'odre du tableau

Ce que j'obtiens

J'obtiens un tableau vehicules différents à chaque fois que j'appel ma fontion getVehiculesInfos()

1 réponse


jean-smaug
Réponse acceptée

Salut, voila une solution utilisant les promesses :

const apiUrl = 'https://www.api.com/';

function getVehiculesInfos(vehiculesList) {
  return Promise.all(vehiculesList.map(async vehicule => {
     return await request.get(apiUrl + 'ag_vehicle/' + vehicule.vehicle_id)
  }));
}