4

使用猫鼬,我想在完成 2 个不同的查询后进行回调。

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

那么假设我希望这些请求非阻塞并异步执行,那么如何将这两个请求链接和/或包装在 Promise 中?

我想避免以下阻塞代码:

team.first(函数(t){
  游戏.所有(功能(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 回答