2010-11-20 15 views
4

Firavun kullanarak, 2 farklı sorgu tamamlandıktan sonra geri arama yapmak istiyorum. İki eşzamansız sorgunun, mongoose kullanarak tamamlandıktan sonra geri arama olması

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

Sonra nasıl zincir ve/veya O istekleri olmayan engelleme istiyor ve uyumsuz idam varsayarak vaatler içinde bu 2 istekleri sarın?

aşağıdaki engelleme kodu önlemek istiyoruz

:

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

cevap

12

gibi bir şey bakmak istiyorum düşünüyorum ben zaten çözüm bulduk ama yine de düşünüyorum. async kütüphanesini kolayca kullanabilirsiniz. Bu durumda kodunuz şöyle görünecektir:

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

Çok güzel cevap –

İlgili konular