У меня есть некоторый код в контроллере, внутри которого у меня есть цикл forEach, внутри которого есть функция, которая возвращает Promise. После того, как обещание выполнено, я могу правильно записать возвращаемый массив.
Проблема в том, что javascript не ждет завершения цикла forEach, хотя контроллер не асинхронный, и я не могу понять, почему ...
Я посмотрел много видео и прочитал пост, но что-то не щелкает, я думаю ...
Заранее спасибо
exports.submitInv = (req, res) => {
let status = {
validated: [],
repacked: []
};
// ...other code...
console.log("1");
status.validated.forEach(async invoice => {
// repackInvoice() returns a PROMISE
let temp = await repackInvoice(invoice);
console.log(temp);
console.log("2");
temp.forEach(inv => {
status.repacked.push(inv);
});
console.log("3");
});
console.log("4");
console.log(status.repacked);
};
Консоль должна выглядеть следующим образом: 1, [invoice], 2, 3, 4, [... all invoices],
Вместо этого я получаю: 1, 4, [], [счет], 2, 3