Как продолжение моего комментария: verifyExistingUsers
не имеет причин «возвращать новое обещание».Узел самостоятельно обернет ваш оператор возврата в обещание, потому что функция 'async'.
Первоначальная ошибка здесь заключается в том, что вы фактически не можете использовать await
в анонимной, не асинхронной функции, ((resolve, reject) => {})
.
Вместо того, чтобы возвращать новое обещание, вы просто вернете нужную переменную, когда закончите помещать данные в массив.Сделав это и объявив функцию как «асинхронную», Node обернет ваше возвращаемое значение обещанием, которое вы ждете где-то еще.
async function verifyExistingUsers(db, users) {
var companies = []
for (const [index, user] of users.entries()) {
let company = await getUserCompany(db, user)
companies.push(company)
if (index === users.length-1) {
return companies; //effectively returns a promise that resolves to companies
}
}
}