4

マングースを使用して、2 つの異なるクエリが完了した後にコールバックが必要です。

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

次に、これらの 2 つのリクエストをプロミス内でチェーンおよび/またはラップする方法は、これらのリクエストをブロックせずに非同期で実行することを想定していますか?

次のブロック コードを回避したいと思います。

team.first(関数(t) {
  games.all(関数 (g) {
    // t と g で何かをする
  });
});
4

2 に答える 2

12

あなたはすでに解決策を見つけたと思いますが、とにかく。非同期ライブラリを簡単に使用できます。この場合、コードは次のようになります。

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
    }
);
于 2011-03-02T08:40:20.083 に答える
1

次のようなものを見たいと思います

https://github.com/creationix/step

于 2011-02-17T12:40:39.220 に答える