Нужно строго последовательно выполнить серию асинхронных запросов и полученные данные запушить в массив. Исходные данные имеют древовидную структуру:
let data = [{
url: '/some-url',
children: [
{
url: 'some-url',
children: null
},
{
url: 'some-url',
children: [
url: 'some-url',
children: null
]
}
]
},
{
url: 'some-url',
children: null
}]
Требуется написать цикл, который рекурсивно обрабатывать массив, делая запросы на url-ы. Т.е. при первой итерации делает запрос, дожидается ответа, пушит ответ в массив, затем проверяет, если ли у объекта на данном уровне children, если есть, то делает все то же самое с children'ами. Иначе говоря, на выходе должен получиться одномерный массив с данными, полученными по урлам. Использую axios в vue-приложении, т.е. запросы делаются this.axios.get(url).
Как лучше всего решить подобную задачу?