Использование mongoose было бы самым простым выходом: оно возвращает Promises для всех функций запросов и сохранения, поэтому вы просто должны сделать: YourModel.findOne({params}).then(() => {...})
Если вы не можете сделать это, в вашем случае«обещанным» примером будет:
var findAndFillArray = (project_id) => new Promise((resolve) => {
.... your previous code here ....
inspection.push({inspection_name:item.inspection_name,field_user_name :
user.owner_name})
if (data.length === inspection.length){ // Or some other preferred condition
resolve(inspection);
}
})
Затем вы получите эту функцию после получения идентификатора, как и любая другая функция:
var id = req.body.project_id;
findAndFillArray(id).then((inspection_array) => {
res.send(inspection_array) // Or whatever
})
Теперь, карта и всефункции списка синхронны в JS, вы уверены, что ошибка связана с этим?