2016-03-24 15 views
1

Gibt es einen Nachteil, ein Versprechen mit nur .catch Abschnitt, aber ohne .then überhaupt zu verwenden?Versprechen ohne `.then '

Ich frage nach den Fällen, in denen das Ergebnis der Auflösung nicht benötigt wird, nur Fehlerbehandlung.

Ist das ein gutes Muster, um nur auf .catch zu verlassen und .then zu überspringen?

Oder ist es etwas, das davon abhängt, welche Versprechen Implementierung es ist?

Antwort

4

Konzeptionell ist nichts falsch an einer Operation, die nur eine Fehlerbehandlungsroutine hat und nach erfolgreicher Beendigung nichts anderes zu tun hat. Wenn das alles ist, dann ist das in Ordnung. Angenommen, Sie aktualisieren einen Server mit neuen Daten vom Client. Wenn die Daten erfolgreich an den Server gesendet wurden, gibt es nichts anderes zu tun, da die Operation abgeschlossen ist. Wenn jedoch ein Fehler auftritt, müssen Sie möglicherweise etwas anderes tun (versuchen Sie es erneut, informieren Sie den Benutzer, korrigieren Sie die Daten anhand des Fehlercodes , etc...).

Um zu kommentieren, ob dies der richtige Weg ist, um Ihren spezifischen Code zu entwerfen, müssten wir den tatsächlichen Code sehen und verstehen, was er macht und dann eine Meinung darüber bilden, ob das der beste Weg ist, diesen spezifischen Code zu strukturieren .

Wenn ich eine allgemeine Funktion entwerfe, würde ich sicherlich sowohl die Fertigstellung (Lösung des Versprechens) als auch den Fehler (Ablehnung des Versprechens) liefern, so dass der Anrufer sich in einen einhaken könnte. Aber es ist wirklich Sache des Anrufers, über welche Ereignisse er informiert werden will und wenn nur der Fehler zählt, dann ist es einfach, eine .catch() zu haben.

Verwandte Themen