-2
这是我的问题:我有一个数据库,用2个集,以简化他们看起来像这样:的NodeJS多个异步调用
var classes = {
class:Number,
students:[Number] }
var student = {
id:Number,
name:String }
我也有收到
有关类的一些数据的路由(例如学年,班级等),并要求班级模型返回学生姓名。我有一个简单的时间选择所需的学生数组,但在我的班级模型中,我无法找到一个询问学生模型名称的好方法。我在做这样的事情在类模型:
mod.exports = function(someDataToRetriveClass,callback){
var counter =0;
var studData = [];
Classes.getStudList(function(err,res){
for(var i=0;i<res.length;i++){
getStudData(res[i],function(err,res2){
counter +=1;
studData.push(res2);
if(counter >= res.length){callback(studData)}
})
}})
}
这是做事的丑陋的方式,有没有得到同样结果的一些更简洁的方法吗?
Ps:即时通讯使用mongodb和mongoose作为数据库支持。
承诺:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise – zurfyx
@zurfyx但是我将如何解决这个事实,即我不知道要创建多少个承诺。我的意思是,如果我知道res.length是固定的我可以这样做:Promise = getStudData.than(getStudData.than(getStudData等,但在这种情况下,我不知道有多少承诺创建。 –