Я использую обещания для получения некоторого уровня на основе данных, для более высокого уровня (L2) мне нужно получить их записи и пользователей, которые также работают на их уровне.Так что это то, что я мог придумать.
module.exports.getQ = function(req, res) {
var promises = [];
var data = [];
User.aggregate([
{
$match: {
reportingManager: req.user.user.empId
}
}
], function(err, data) {
if (err)
console.log(err);
else {
for (var i = 0; i < data.length; i++) {
promises.push(new Promise((resolve, reject) => {
Quotation.find({
$or: [{
salesCrm: data[i].empId
}, {
salesCrm: req.user.user.empId
}]
}, function(err, result) {
if (err) {
console.log(err);
reject(err);
} else {
console.log(JSON.stringify(result));
resolve(result);
}
}).sort({
createdOn: 1
})
}))
Promise.all(promises).then((allInsts) => {
res.json(allInsts[0]);
}).catch((error) => {
});
}
console.log(JSON.stringify(data) + "----------------");
}
})
}
Проблема, с которой я сталкиваюсь, заключается в том, что в бэкэнде он получает все данные правильно, но не во внешнем интерфейсе.Когда я обновляю страницу, на ней иногда отображаются некоторые пользовательские данные.
Только данные L2 и любая из данных L3 извлекаются ввнешний интерфейс, но не все данные L3 вместе с L2.
Кто-нибудь может помочь мне решить эту проблему?
Данные, которые отсутствуют:
[{
"sourceLanguage": "English",
"targetLanguage": "Telugu",
"fuzzySlab": "New Words",
"_id": "5b87c09660b9eb3f309f86b6",
"fileName": "Episode 11",
"serviceType": "Proof Reading",
"rate": 1.25,
"uom": "English Word",
"quantity": 1000,
"fileStatus": "Init"
}],
"salesCrm": "VVVV4500",
"createdName": "Rakshith R",
"tax": "Yes"
В интерфейсе: Не отображаются все данные пользователя.