response.json()
на самом деле возвращает другое Promise
, поэтому вам нужно что-то вроде
Promise.all([apiRequest1, apiRequest2]).then((rawResponses) => {
Promise.all(rawResponses.map(response => response.json())).then((values) => {
combinedData["apiRequest1"] = values[0];
...
});
});
Вы можете сделать его более чистым с синтаксисом async/await
, если ваша среда его поддерживает:
async function getData(request) {
const apiResponse1 = await fetch('www.domain.com/api1');
const apiResponse2 = await fetch('www.domain.com/api2');
const combinedData = {"apiRequest1":{},"apiRequest2":{}};
const rawResponses = [apiResponse1, apiResponse2].map(response => response.json());
const values = await Promise.all(rawResponses);
// do stuff with values array
}