Heim >Web-Frontend >js-Tutorial >Der Unterschied zwischen erledigt und dann

Der Unterschied zwischen erledigt und dann

php中世界最好的语言
php中世界最好的语言Original
2018-03-15 15:12:456586Durchsuche

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 2

4. Das erste erhält dann defer.resolve(2, 3) und erhält zwei Parameter. Das Ergebnis ist 6. Gleichzeitig wird ein neues verzögertes

Objekt

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 übergeben

6. 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 validiert


Verwenden des jQuery EasyUI-Faltpanels

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn