我不知道它可能是反模式。抽象函數爲了讓選擇返回承諾或回調
很快,很年輕的開發人員會加入我們的開發團隊,我想讓他們選擇是否要使用帶回調或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);
});
});
}
}
我不一定稱之爲反模式。許多圖書館都是這樣工作的但是,我會避免在同一代碼庫中混合使用承諾和回調,而不是讓個別開發人員決定。如果你的新開發者對承諾不滿意,他/她應該學習它們。 –