Sto usando la libreria di promemoria the axios, ma la mia domanda si applica più in generale penso. In questo momento sono in loop su alcuni dati e facendo una singola chiamata REST per iterazione.
Al termine di ogni chiamata, è necessario aggiungere il valore restituito a un oggetto. Ad alto livello, sembra che questo:In attesa di tutte le promesse chiamate in un ciclo per finire
var mainObject = {};
myArrayOfData.forEach(function(singleElement){
myUrl = singleElement.webAddress;
axios.get(myUrl)
.then(function(response) {
mainObject[response.identifier] = response.value;
});
});
console.log(convertToStringValue(mainObject));
Quello che sta succedendo, naturalmente, è quando chiamo console.log
il mainObject
non ha tutti i dati in esso ancora, dal momento che Axios è ancora raggiungendo fuori. Qual è un buon modo di affrontare questa situazione?
Axios ha un metodo all
insieme a uno sorella spread
uno, ma sembrano essere utili se si conosce in anticipo quante chiamate si effettueranno, mentre nel mio caso non so quante loop iterazioni ci saranno.