2010-11-20 8 views
4

abgeschlossen. Mit Mungo, möchte ich einen Rückruf nach 2 verschiedenen Abfragen abgeschlossen haben.Mit einem Rückruf nach zwei asynchronen Abfragen haben Mongoose

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

Dann, wie Kette und/oder wickeln diese 2-Anforderungen innerhalb Versprechen vorausgesetzt, ich diese Anfragen nicht blockierende will und asynchron ausgeführt?

Ich mag würde folgende Sperrung Code vermeiden:

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

Antwort

12

Ich denke, man Lösung bereits gefunden, aber trotzdem. Sie können einfach async Bibliothek verwenden. In diesem Fall sieht Ihr Code wie folgt aus:

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

sehr nette Antwort –

Verwandte Themen