Ich vor kurzem fand mich in einer Situation sehr schwierig zu debuggen. Stellen Sie sich folgende sehr einfache Situation:NodeJS: Auto-Catch-Fehler in Promise und Anruf ablehnen
function somePromise() {
return new Promise((resolve, reject) => {
SomeModule.someMethod();
AnotherModule.somePromise().then(resolve).catch(reject);
});
}
Resolve nie genannt wurde, aber ich habe keinen Fehler in der Konsole - das war schwer zu debuggen!
Stellt sich heraus, dass ich vergessen habe, SomeModule
zu verlangen. Nach der Anforderung funktionierte der Code wie erwartet.
Gibt es eine Möglichkeit, jedes Promise in meinem Code mit einem Fehlerhandler automatisch zu versuchen/abzufangen? Ich möchte den Körper meiner Promises nicht mit einem Try/Catch-Block umgeben, um solche Fehler in Zukunft leichter zu finden.
Vielen Dank im Voraus für Meinungen!
Dies war nur zur Vereinfachung, ich mache etwas mehr Verarbeitung mit den Ergebnissen des Versprechens, das die "antipattern" rechtfertigt. – CrushedPixel
Nein, es gibt keine Rechtfertigung für das Antipattern. Machen Sie einfach '.then (processing)', wobei 'processing' eine Funktion ist, die die Versprechensergebnisse übernimmt und einen neuen Rückgabewert berechnet. Sehr wahrscheinlich Fehler in der Verarbeitung waren der eigentliche Grund, warum Sie keine Fehlermeldungen erhalten haben. – Bergi
Sie waren nicht, das Problem war in der Fangmethode der Methode, die meine eigene Versprechungsmethode behandelt. Aber danke für deine Meinung. – CrushedPixel