【发布时间】:2015-10-27 07:51:39
【问题描述】:
我目前正在使用q 和Node.js。我所有的模型都使用来自q 的承诺。后来我意识到写了很多这样的样板代码
count: function(){
var deferred = Q.defer()
User.count(function(err,count){
if(err)
deferred.reject(err)
else
deferred.resolve(count)
})
return deferred.promise;
},
findAll: function(){
var deferred = Q.defer()
User.find({}, function(err,users){
if(err)
deferred.reject(err)
else
deferred.resolve(users)
})
return deferred.promise;
}
有没有办法删除这个样板代码?
【问题讨论】:
-
你能提供样品
User.count和User.find吗? -
@Grundy,我使用猫鼬,因此它们是默认的猫鼬模型方法。
-
似乎猫鼬使用承诺实现:mongoosejs.com/docs/api.html#promise_Promise
-
所以,看来你的代码应该是这样的:
count: function(){ return User.count().exec(); }, findAll: function(){ return User.find({}).exec();}
标签: javascript node.js q boilerplate