我正在使用 mongoose-q(流行的 mongoose mongodb ORM for node.js 的 promise 包装器)。
然而,我觉得也许这些嵌套的承诺并不比回调好多少。
有没有更好的方法来做这些查询?
User.findById(toFollowId)
.execQ()
.then(function(user){
if (!user) return res.send(404);
user.followers.addToSet(me);
me.following.addToSet(user);
me.saveQ()
.then(function(me){
user.saveQ()
.then(function(user){
getFollowerStats([me, user], function(err, data){
if ( err ) return res.json(400, err);
res.json(data);
});
}).fail(function(err){
res.json(400, err);
});
})
.fail(function(err){
res.json(400, err);
});
}).fail(function(err){
next(err);
});