Я все еще немного новичок в Node.js и Javascript.Я знаю, что javascript по своей природе асинхронный, но я не могу понять, как решить эту проблему.Я пытался использовать Promises, но это не помогло в данном конкретном случае (или, может быть, я не знаю, как работают обещания).
Внутри моей функции getChilds () я выполняю поиск по id в моей базе данных mongoи я помещаю найденный объект в массив с именем childObjects, который я получаю параметром в функции getChilds ().
Объект найден и добавлен в массив childObjects.Я использую console.logs, чтобы проверить, что он работает.Проблема в том, что при выходе из функции значение childObjects не определено.
Моя функция getChilds ():
function getChilds(id, childObjects, res) {
return new Promise((resolve, reject) => {
Item.findById(id, function (err, item) {
if (err) {
console.log("There's no corresponding item for that id!");
return (res.send(err));
}
console.log("CHILD ITEM:" + item);
childObjects.push(item);
console.log("chiild ojects: " + childObjects);
// return childObjects;
// res.send(childObjects);
// return childObjects;
// res.send(item);
resolve(item);
// childObjects.push(item);
});
});
}
Спасибо за помощь!