У меня есть метод, который возвращает список шоу с последними релизами эпизодов, которые возвращают общее количество эпизодов. Я как бы застрял в цикле, где мне нужно подсчитать все эпизоды шоу в приведенном массиве, поскольку запрос вызова асинхронный, и я не могу их синхронизировать. Это здорово, что может предложить решение этой проблемыLoopback Async data call Nodejs
server.models.Eps.find({
include:'show',
order: 'dateadded DESC',
limit: 10 },function (err,episodes) {
if(err)
{ console.log(err);
return res.sendStatus(500);
}
var show = [];
var p1 = new Promise(function (resolve,reject) {
for(var i = 0; i < episodes.length;i++)
{
var sh = episodes[i].show();
server.models.Eps.count({'show_id': show.id},function (err,value) {
if(err) {
console.log(err);
return res.statusCode(500);
}
console.log(value);
sh.episodeCounts = value;
show.push(sh);
});
}
});
Promise.all([p1])
.then(function (values) {
return res.send(show);
});
});
Оооо !! это была ошибка, когда я создавал этот код для потока Stackover, исправил «server.models.Eps.count ({'show_id': sh.id}, function (err, value) {". Что касается "Promises.all «Есть больше обещаний в вышеприведенном коде, просто чтобы сделать код короче и достаточно быстро, чтобы понять, что я их удалил. Должен был добавить пустое обещание для завершения ситуации. – tecx20
Спасибо, что сделал трюк, решил пойти со вторым подходом – tecx20