Привет.
Нужно через fetch получить главный список данных.
Из него также получаю список ссылок, через их перебор и fetch в цикле получаю доп.данные.
И результат отправляется в state.
НО по итогу state пустой, где-то промис теряется.
Как правильно и как проще оформить такую цепочку промисов с вложенным перебором fetch и гарантированно получить результат с сохранением в state?
У меня сейчас примерно такой нерабочий код:
function dataPage() {
let fetchObject; // Главный контейнер, в конце его запишем в state
fetch('example.com') // Главный сайт
.then(response => response.json())
.then(data => {
fetchObject = data; // Сохраняем главный результат
fetchObject.arr = []; // Создаем массив, чтобы сюда сохранить список
data.URLs.map(url => { // Перебираем список URL из главного результата
fetch(url) // Запрашиваем данные с каждого url
.then(response => response.json())
.then(data => {
fetchObject.arr.push(data) // Сохраняем доп.данные
})
})
})
.then(() => {
// Сохраняем все результаты в state
setState(prevState => {
return (
{
...prevState,
fetchObject
}
)
})
})
}