Вам необходимо использовать Promise.all () с await
, если у вас есть коллекция обещаний, и использовать операцию map()
для создания массива обещаний.
await Promise.all(selectedCountries.map(async c => {
await Promise.all(selectedIndicators.map(async i => {
let drr = await util.calculateDeletionResidualsStatistics(...);
// ...
});
});
console.log('printed after everything is finished');
Имейте в виду, что Promise.all()
разрешит массив результатов после того, как все внутренние обещания будут разрешены. Порядок этих обещаний непредсказуем, так как они разрешаются параллельно.
В итоге вы получите вложенный Promise.all()
, который разрешится в пакетах до разрешения верхнего уровня Promise.all()
.
Поскольку Похоже, вы отбрасываете результаты внешних обещаний, тогда я не вижу здесь реальной проблемы с заказом. Вы просто хотите запустить некоторый код после того, как все будет сделано.