返回从循环中调用的DB查询中检索的数据时发出的问题我在循环中进行多个MongoDB查询。但是当我简单地使用返回来发送数据时,它只是返回未定义的结果,而不是等待所有DB请求的结果。我也试着用q.mode,但同样的问题。代码:var getPrayerInCat = function(data){
var result ;
var finalData = [];
if(data.length >0){
data.forEach(function(data2){
var id= data2.id;
Prayer.find({prayerCat:id},function(err,prayer){
var deferred = Q.defer()
if (err) { // ...
console.log('An error has occurred');
// res.send(err);
result= finalData = err } else {
if(!prayer){
// console.log(data2.id+'--0');
data2.prayersCount = 0;
result = deferred.resolve(finalData.push(data2))
} else {
// console.log(data2.id+'--'+prayer.length);
data2.prayersCount = prayer.length;
// console.log(prayer)
result = deferred.resolve(finalData.push(data2))
} // else for data forward
}
deferred.promise;
})
// deferred.resolve(finalData);
})
/*if(finalData.length > 0) { return finalData;}*/
}}未定义返回finalData。
3 回答
莫回无
TA贡献1865条经验 获得超7个赞
添加回答
举报
0/150
提交
取消