Мой код работает нормально и возвращает то, что мне нужно, однако мне интересно, есть ли более чистый или, что более важно, более производительный способ сделать это.
Я звоню API, чтобы вернуть мне списокИдентификаторы, затем в приведенном ниже коде я использую следующее для просмотра каждого возвращенного идентификатора. Затем я Promise.all, а затем сглаживаю результаты в массиве.
// Previous API call
console.log(invoices.data) // [1,2,3,4]
// Loop through the array above and collect all details for each ID
const invoiceDetails = await invoices.data.map(async id => {
const res = await axios.get(
`${baseURL}` +
`invoice/${id}`
);
return res.data;
});
// Promise.all results
const invoiceDetailsResponse = await Promise.all(invoiceDetails);
// Once all have returned, flatted into one array
const flattenedinvoiceDetails = [].concat(...invoiceDetailsResponse);
Итак, если все ясно, просто интересно, есть ли у кого-нибудь лучшее предложение о том, как они это сделают?