更新 - 解决方案:
我是为了循环而应该使用MongoDB $in
功能 - details here
我有以下Q.all块:
Q.all([
getFirstBlock(),
getSecondBlock(),
])
.then(function(){
getSecondBlockProcessed();
})
.then(function(){
res.json(completeArray);
});
我遇到的问题是当我进入最后then
块时,我注意到函数getSecondBlockProcessed
尚未完成。
第一个Q.all
中的所有内容都已完成。
为什么这个承诺没有得到解决?
问题的方法如下:
var getSecondBlockProcessed = function() {
return Q.promise(function(resolve, reject) {
for (var i=0; i<mostInRegion.length; i++){
Person.find(
{_id: mostInRegion[i]['_id']},
{question:1, country: 1},
function(err, found) {
mostInRegion2.push(found);
})
}
resolve();
});
}
任何帮助都会受到赞赏/我忽略了什么?
由于