Używam biblioteki obietnicy the axios, ale moje pytanie dotyczy bardziej ogólnie myślę. Teraz przechodzę do pętli nad niektórymi danymi i wykonuję pojedyncze wywołanie REST na podstawie iteracji.
Po zakończeniu każdego połączenia muszę dodać wartość zwracaną do obiektu. Na wysokim poziomie, to wygląda to tak:Oczekiwanie na wszystkie obietnice wywołane pętlą, aby zakończyć
var mainObject = {};
myArrayOfData.forEach(function(singleElement){
myUrl = singleElement.webAddress;
axios.get(myUrl)
.then(function(response) {
mainObject[response.identifier] = response.value;
});
});
console.log(convertToStringValue(mainObject));
Co się dzieje jest oczywiście gdy zgłoszę console.log
mainObject
nie ma żadnych danych w nim jeszcze, ponieważ Axios wciąż dotarcia. Jaki jest dobry sposób radzenia sobie z tą sytuacją?
Axios nie mają all
metodę wraz z siostrą spread
jeden, ale wydają się być przydatne, jeśli wiesz z wyprzedzeniem, ile połączeń będziesz tworzenia, natomiast w moim przypadku nie wiem ile iteracje pętli będą.