Dieses Mal werde ich Ihnen den Unterschied zwischen „done“ und „dann“ vorstellen. Was sind die Vorsichtsmaßnahmen bei der Verwendung von „done“ und „dann“.
s deferred object s done-Methode und then-Methode können beide Kettenaufrufe implementieren, aber ihre Funktionen sind unterschiedlich, wenn Sie die then-Methode If übergeben Hat die Methode einen Rückgabewert, wird dieser an die nächste in der Kette aufgerufene Methode übergeben. Die done-Methode ist das Gegenteil. Selbst wenn die von Ihnen übergebene Methode einen Rückgabewert hat, übergibt die done-Methode Ihren Rückgabewert nicht ohne weiteres an die nächste aufgerufene Methode Kurz gesagt, gehen wir direkt zum Beispiel:
Das Ausgabeergebnis ist wie folgt:
var defer = jQuery.Deferred(); defer.done(function(a,b){ console.log("a = " + a+"b = " + b); return a * b; }).done(function( result ) { console.log("result = " + result); }).then(function( a, b ) { console.log("a = " + a+"b = " + b); return a * b; }).done(function( result ) { console.log("result = " + result); }).then(function( a, b ) { console.log("a = " + a+"b = " + b); return a * b; }).done(function( result ) { console.log("result = " + result); }); defer.resolve( 2, 3 );
Ergebnisanalyse:
1. Sowohl das erste erledigt als auch das zweite erledigt gaben defer.resolve(2, 3) zurück 2. Der Rückgabewert von callback in done wird nicht übergeben
3. Der zweite done hat nur einen Parameter und erhält den ersten Parameter 2 von defer.resolve(2, 3), also result Es ist 24. Das erste erhält dann defer.resolve(2, 3) und erhält zwei Parameter. Das Ergebnis ist 6. Gleichzeitig wird ein neues verzögertesObjekt
erstellt und das Ergebnis wird an das zurückgestellte Objekt übergeben 5. Der dritte hat das neue zurückgestellte Objekt und das übergebene Ergebnis erhalten, das Ergebnis als 6 ausgegeben und das neue zurückgestellte Objekt dann an den zweiten übergeben6. Das zweite erhält nun das neue zurückgestellte Objekt, nämlich das Ergebnis, daher ist der Parameter b nicht definiert. Das zurückgegebene Ergebnis ist gleichzeitig ein neues zurückgestelltes Objekt > wird erstellt. 7. Der vierte erledigte Empfang Bei einem neu erstellten verzögerten Objekt ist der übergebene Parameter NaN und das gedruckte Ergebnis ist natürlich NaN
Ich glaube, Sie haben die Methode beherrscht, nachdem Sie den Fall gelesen haben Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!Empfohlene Lektüre:
Wie das Validate-Plug-in von jQuery Eingabewerte validiertDas obige ist der detaillierte Inhalt vonDer Unterschied zwischen erledigt und dann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!