Ich weiß nicht, vielleicht ist es ein Antipattern.Abstrakte Funktion, um wählen zu lassen Versprechen oder Rückruf
Bald werden sehr junge Entwickler unserem Entwicklerteam beitreten, und ich möchte sie entscheiden lassen, ob sie das Modul mit Callback oder Promises-Muster verwenden wollen.
Diese Funktion speichert grundsätzlich Daten in der Datenbank. Ich wiederhole den db.insert-Ablauf, um die Funktion zu abstrahieren, aber gibt es einen anderen Weg, dies zu tun?
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);
});
});
}
}
Ich würde es nicht unbedingt ein Anti-Muster nennen. Viele Bibliotheken arbeiten auf diese Weise. Ich würde jedoch vermeiden, Versprechen und Rückrufe innerhalb der gleichen Codebasis zu mischen, anstatt einzelne Entwickler entscheiden zu lassen. Wenn dein neuer Entwickler sich nicht mit Versprechungen zufrieden gibt, sollte er/sie sie lernen. –