2017-09-09 14 views
0

Empfangene jqXHR Objekt von meiner $.post Abfrage enthält done Funktion. Aber ich erkannte, dass diese Funktion nur seine jqXHR Objekt zurückgibt:Warum gibt jqXHR.done() jqXHR-Objekt zurück?

$.post(query, function(a,b,jqXHR) { 
    jqXHR === jqXHR.done() //true 
}); 

Wie shoud ich das interpretieren?

+0

Das 'jqXHR' Objekt ist ein Ober des nativen XMLHttpRequest-Objekts. In jQuery ist es ein verzögertes Objekt, das auch die jQuery-Methoden besitzt, die verzögerte Objekte haben. Eine dieser Methoden ist 'done()', und da 'done()' auch * das verzögerte Objekt zurückgibt, das exakt gleiche Objekt vergleicht und ein Objekt mit sich selbst vergleicht, gibt 'true' zurück – adeneo

+0

Also, in diese Situation, warum XMLHttpRequest sich selbst mit done() zurückgibt? Sollte ich es nur als "wahren" Wert interpretieren? –

Antwort

2

Seit jquery ‚s Ajax-Aufruf ein Versprechen zurückkehrt, werden alle von done(), fail(), always() und then() Funktionen das jqXHR Objekt zurück, um für das Versprechen richtig zu arbeiten.

Weitere Informationen finden Sie hier:
http://api.jquery.com/jQuery.ajax/#callback-functions