Ich versuche, $.when
zu verstehen, und ich kann sehen, dass es nützlich sein kann, wenn Sie auf mehrere Deferred warten wollen, bevor Sie fortfahren. Ich bin mir jedoch nicht sicher, ob ich verstehe, was der Anwendungsfall für die Verwendung von $.when
mit einem Deferred ist. Zur Veranschaulichung:
Aus $.when
[docs] Dokumentation:
Wenn ein einzelner Deferred an
jQuery.when
übergeben wird, wird sein Promise-Objekt (eine Teilmenge der Deferred-Methoden) von der Methode zurückgegeben.
So $.when(deferred).then(...)
ist dasselbe wie deferred.promise().then(...)
.
Das Zusicherungsobjekt ist nur eine begrenzte Schnittstelle zum verzögerten Objekt. Es erlaubt Callbacks hinzuzufügen, aber nicht den Status des Deferred zu ändern (auflösen, ablehnen).
Es gibt also keinen wesentlichen Unterschied zwischen der Verwendung von $.when
und dem Aufruf von .then
direkt für das verzögerte Objekt.
Ich halte es nicht für sinnvoll, ein einzelnes deferred-Objekt explizit an $.when
zu übergeben, da Sie keinen Vorteil erhalten. Es kann jedoch Situationen geben, in denen Sie eine unbekannte Anzahl von verzögerten Objekten haben, was bedeutet, dass es auch nur eine sein kann.
Tags und Links jquery jquery-deferred