返回從循環中調用的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。
返回從循環中調用的DB查詢中檢索的數據時發出的問題
叮當貓咪
2019-07-08 12:57:29