我知道有可能做到这一点,但我的问题是,是否有充分的理由不这样做,还是有更好的方法?我觉得它可以让代码更容易理解并且可能使测试变得更容易,但这就是我已经得到的。
示例代码:
postSchema.methods.publishPost = function(data, cb) {
var self = this,
options = options || {};
mongoose.model('Version').findById(data.version).exec(function(err, version) {
if (err) return cb(err);
mongoose.model('Translation').findTranslatedVersion(version, function(err, translation) {
if(err) return cb(err);
publisher.publish(self, translation ? translation : version, function(err, published) {
if (err) return cb(err);
self.save(published);
});
});
});
}