Wie gehe ich mit Fehlern mit dem Versprechen?
Als Knoten Programmierer. Ich bin es gewohnt zu verwenden "nodebacks" für die Behandlung von Fehlern in meinem code:
myFn(param, function(err, data) {
if (err){
//error handling logic
}
else {
//business logic
}
});
Beim schreiben, die Funktion, die ich tun kann, so etwas wie:
var myFn = function(param, callback){
var calc = doSomeCalculation(param);
if(calc === null) { //or some other way to detect error
callback(new Error("error with calculation"), null);
}
...
someAsyncOp(calcN,function(err, finalResult){
if(err) return callback(err, null);
callback(null, finalResult); //the error is null to signal no error
});
};
Wie würde ich das tun, diese Art der Fehlerbehandlung mit dem Versprechen?
InformationsquelleAutor der Frage Benjamin Gruenbaum | 2014-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Faustregel
Wann immer Sie Zweifel haben, wie etwas zu tun mit verspricht - denke, über die synchron-version.
Diese, zumindest für mich, sieht viel sauberer als ein callback mit einem ersten parameter, der manchmal
null
.Die Versprechen, die Art und Weise ist fast immer sehr ähnlich zu der synchronen version des Problems:
Wo myFn würde Aussehen wie beim arbeiten mit callbacks:
Arbeiten mit callbacks/nodebacks
Dies ist nur etwas, was Sie zu tun haben sollten beim arbeiten mit callbacks, die bei der Arbeit mit Versprechungen ist es viel einfacher, und Sie tun können:
Außerdem, wenn Sie arbeiten im inneren Versprechen Ketten, die Sie bekommen, werfen Sicherheit:
Beachten Sie, dass einige Bibliotheken, wie Bluebird , Anmeldung und Q bieten syntaktischen Zucker und automatische promisification von Methoden, so dass Sie nur selten verwenden
new Promise
selbst.Bedenken Sie auch, Lesen diese und dass erfahren Sie mehr über Versprechen Fehlerbehandlung.
InformationsquelleAutor der Antwort Benjamin Gruenbaum