2010-11-20 13 views
4

mongooseを使用して、2つの異なるクエリが完了した後にコールバックを行いたいと思います。その後mongooseを使用して2つの非同期クエリが完了した後にコールバックが発生する

 
var team = Team.find({name: 'myteam'}); 
var games = Game.find({visitor: 'myteam'}); 

どのようにチェーンおよび/または私はこれらの要求非ブロッキングをしたいと非同期で実行仮定約束内のもの2つの要求をラップ?

私は、次のブロックのコードを避けたい:

 
team.first(function (t) { 
    games.all(function (g) { 
    // Do something with t and g 
    }); 
}); 

答えて

12

のようなものを見てみたいと思います。 asyncライブラリを簡単に使用できます。この場合、コードは次のようになります。

async.parallel(
    { 
     team: function(callback){ 
      Team.find({name: 'myteam'}, function (err, docs) { 
       callback(err, docs); 
      }); 
     }, 
     games: function(callback){ 
      Games.find({visitor: 'myteam'}, function (err, docs) { 
       callback(err, docs); 
      }); 
     },      
    }, 
    function(e, r){ 
     // can use r.team and r.games as you wish 
    } 
); 
+0

とても素敵な解答 –

関連する問題