这就是事情:
对我来说意味着存储库(至少对于提取)应该在接口中定义回调,即使实现恰好是同步的,例如:
var repo = {
cache: {},
getById: function(id,callback){
callback(null,this.cache[id]);
}
}
因为我可能会(很快)将其改为:
var repo = {
getById: function(id,callback){
mongoose.findOne({_id:id},callback);
}
}
恕我直言,对于C / U / D,同样的需求主要来自持久层的错误报告。
简而言之:您认为使用异步回调定义存储库(在Nodej中,虽然不是真正相关)是最佳做法吗?
答案 0 :(得分:1)
如果周围应用程序代码的其余部分也是异步的话,我认为这是一个很好的做法。从技术上讲,这当然是一种很好的做法,因为存储库是IO绑定的,并且在保持阻塞调用线程方面没有任何意义。问题是异步回调导致continuation-passing style导致学习曲线和大多数语言的摩擦程度。