-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等,但在這種情況下,我不知道有多少承諾創建。 –