Вызов forEach
не ожидает, его обратный вызов - это асинхронная c функция, которая возвращает обещания, но они не ожидаются. Его возвращаемое значение уходит в пустоту. Следовательно, console.log(array);
выполняется перед заполнением массива значениями.
Вы можете исправить это, используя обычный for
l oop. NB: try
без catch
не очень полезно (и ему понадобится finally
), поэтому вы можете просто оставить это.
for (let val of var1) {
smallarr = await Item.find({ val:val.x })
array.push(smallarr);
}