Я создаю массив Обещаний для одновременного запуска, например:
let categories = ["cat1", "cat3", "cat3"];
let categoryRequests = []; // array of promises
categories.forEach(category => {
categoryRequests.push(getCategoryResult({category})); // getCategoryResult returns a promise
});
Как только все обещания разрешены, я получаю массив ответов, например:
let categoryResponses = await Promise.all(categoryRequests);
categoryResponses.forEach(categoryResponse => {
categoryResponse.categoryType = "???"; // should be a value from categories array
});
Я хочу добавить поле «categoryType» к каждому ответу, соответствующее категории, которая использовалась в начальном запросе.Насколько я понимаю, массив ответов НЕ находится в том же порядке, что и массив обещаний.
Один из способов, который я могу придумать, состоит в том, чтобы выполнить каждое обещание последовательно, добавить соответствующую категорию к ответу и запуститьот следующего обещания.Однако я хотел бы выполнить обещания параллельно.
Есть ли способ сопоставить начальный запрос с массивом ответов?