Angenommen, ich Code wie diesen haben, vorausgesetzt, db.get()
ist ein promisified API:Promises Fehlerbehandlung Grundlagen
var promises = [];
for(var i = 0; i < 10; i++){
promises.push(getFromDatabase("age"));
}
Q.all(promises).then(function(results){
// something
},function(error){
log.error(error)
});
function getFromDatabase(property){
return db.get(property).then(function(result){
return result;
},function(error){
log.error(error)
})
}
Wer den Fehler behandeln werde? Die Funktion in der Versprechungskette von Q.all()
oder die Funktion in der Versprechungskette von getFromDatabase()
.
Auch, wenn es eine Top-Level-Fehlerbehandlung wie in Q.all()
gibt, gibt es einen Bedarf für die Behandlung von Fehler in Hilfsfunktionen?
Sie sollten wahrscheinlich passieren 'null' anstelle der Identitätsfunktion zu' then', oder einfach nur 'catch' verwenden. – Bergi
Siehe auch [diese Frage zum Verketten 'catch'] (http://stackoverflow.com/questions/16371129/chained-promises-not-passing-on-rejection). – Bergi