Я использую the axios библиотеку обещаний, но мой вопрос применяется в более общем плане, я думаю. Прямо сейчас я перебираю некоторые данные и делаю один вызов REST на итерацию.
По мере завершения каждого вызова мне нужно добавить возвращаемое значение к объекту. На высоком уровне это выглядит следующим образом:Ожидание всех обещаний, вызванных в цикле, чтобы закончить
var mainObject = {};
myArrayOfData.forEach(function(singleElement){
myUrl = singleElement.webAddress;
axios.get(myUrl)
.then(function(response) {
mainObject[response.identifier] = response.value;
});
});
console.log(convertToStringValue(mainObject));
Что происходит, конечно, когда я называю console.log
mainObject
не имеет каких-либо данных в нем еще, так как Вардар все еще протягивая. Каков хороший способ справиться с этой ситуацией?
У Axios есть метод all
вместе с сестрой spread
, но они кажутся вам полезными, если вы знаете заранее, сколько звонков вы будете делать, тогда как в моем случае я не знаю, сколько итерации цикла будут.