Das Kurzdokument für .fail
sagt:
Fügen Sie Handler hinzu, die aufgerufen werden, wenn das verzögerte Objekt abgelehnt wird.
und das kurze doc für .catch
ist genau das gleiche:
Fügen Sie Handler hinzu, die aufgerufen werden, wenn das verzögerte Objekt abgelehnt wird.
Quelle: http://api.jquery.com/category/deferred-object/
Die von den beiden Methoden akzeptierten Argumente scheinen unterschiedlich zu sein, und das Dokument von
.catch
besagt, dass .catch
ist ein Pseudonym von .then(null, fn)
Gibt es Fälle, in denen ich verwenden sollte .fail
und andere, wo ich verwenden sollte .catch
?
Oder … wenn ich nur eine Funktion habe … sind folgende Befehle austauschbar und existieren nur aus Kompatibilitäts-/historischen Gründen?
a) .fail(fn)
b) .catch(fn)
c) .then(null, fn)
Ich habe eine jsFiddle erstellt:
https://jsfiddle.net/sq3mh9j5/
Wenn es einen Unterschied gibt, könnten Sie bitte einige Beispiele geben, da ich neu bei jquery bin und noch nicht mit allen Versprechungsbegriffen vertraut bin.
Warum verweist das Dokument von .catch nicht auf das Dokument von .fail und verdeutlicht den Unterschied/die Ähnlichkeit?
Bearbeiten
Ich habe einige Hinweise in den Versionshinweisen zu 3.0 gefunden, dass sich das Verhalten von .then geändert hat.
https://blog.jquery.com/2015/07/13/jquery-3-0-and-jquery-compat-3-0-alpha-versions-released/
Trotzdem bin ich mir immer noch nicht sicher, wann ich .fail und wann .catch verwenden soll.