У меня есть вложенный цикл map
с асинхронным ожиданием, где я делаю 2 promise.all
операторы.
Данные отформатированы в 1 большой массив, в котором содержится, возможно, несколько массивов объектов.
Внутренний цикл будет отображаться через объекты в массиве, а внешний цикл - через массивы в основном массиве.
Я использую map
, поскольку легко поддерживать эту функцию с параллельной производительностью против последовательной . Я не уверен, стоит ли держать это параллельно или есть лучший способ сделать это (возможно, для каждого цикл).
Вот код (упрощенный / обобщенный), который я сейчас использую.
const outerPromise = information.map(async order => {
const innerPromise = order.moreInformation.map(async singleOrder => {
if (something) {
const response = await axios({ ... });
return response.specificDataField;
}
});
const orders = await Promise.all(innerPromise);
return orders.filter((obj) => obj);
});
const orders = await Promise.all(outerPromise);
return orders;
Извините, если форматирование немного отключено, отступ может быть отключен, я не могу его правильно отформатировать.
Любая помощь будет оценена. Спасибо!
Постскриптум Это пишется в JS / NodeJs (ExpressJs)
Edit:
Я не думаю, что проблема заключается в том, чтобы потом фильтровать, поскольку объекты могут быть нулевыми; Мне нужно будет отфильтровать после возвращения innerPromise (чтобы увидеть, какие являются нулевыми?).
Это, как говорится, на самом деле это 2 map
заявления, которые заставляют меня чувствовать, что есть лучший способ сделать это.