Храните все ваши запросы в массиве. Затем используйте Promise.all()
ожидание всех этих запросов до sh. Затем, когда все запросы будут завершены, используйте другой Promise.all()
с map()
внутри него, чтобы вернуть JSON каждого запроса и дождаться, пока все они завершатся sh.
Теперь ваш аргумент data
будет иметь массив объектов, доступных в следующем then
обратном вызове.
function fetch300Times() {
let responses = [];
for(let i = 1; i <= 300; i++) {.
let response = fetch(`example.api/incomes/${i}`);
responses.push(response);
}
return Promise.all(responses);
}
const awaitJson = (response) => Promise.all(responses.map(response => {
if(response.ok) return response.json();
throw new Error(response.statusText);
}));
fetch300Times()
.then(awaitJson)
.then(data => {
fetch('example.api') // should be returned 1 time
.then(response => {
if(response.ok) return response.json();
throw new Error(response.statusText);
});
}).catch(function handleError(error) {
console.log("Error" +error);
});