我不知道它可能是反模式。抽象函数为了让选择返回承诺或回调
很快,很年轻的开发人员会加入我们的开发团队,我想让他们选择是否要使用带回调或Promises模式的模块。
该功能基本上是将数据保存到数据库中。我重复db.insert流程来抽象函数,但是有没有其他的方法来做到这一点?
function create(data, callback) {
if(callback) {
db.insert(data, function(err, doc) {
return callback(err, doc);
});
} else {
return new Promise(function(res, rej) {
db.insert(data, function(err, doc) {
if(err) {
return reject(err);
}
return resolve(doc);
});
});
}
}
我不一定称之为反模式。许多图书馆都是这样工作的但是,我会避免在同一代码库中混合使用承诺和回调,而不是让个别开发人员决定。如果你的新开发者对承诺不满意,他/她应该学习它们。 –