Heim Web-Frontend js-Tutorial Der Unterschied zwischen Deferred und Promise in jQuery_jquery

Der Unterschied zwischen Deferred und Promise in jQuery_jquery

May 16, 2016 pm 03:06 PM

Was ist der Unterschied zwischen Deferred und Promise?

Versprechen

Ein Versprechen ist ein Objekt, das von einer asynchronen Funktion zurückgegeben wird. Wenn Sie eine solche Funktion selbst schreiben möchten, müssen Sie eine verzögerte Funktion verwenden.

var promise = $.ajax({
url: "/myServerScript"
});
promise.done(mySuccessFunction); 
promise.fail(myErrorFunction); 
var promise = $.ajax({
url: "/myServerScript"
}); 
promise.then(mySuccessFunction,myErrorFunction); 
Nach dem Login kopieren

Die Vorteile der Verwendung von Promises sind wie folgt:

Sie können die Funktionen done() und fail() mehrmals aufrufen und unterschiedliche Rückruffunktionen verwenden. Möglicherweise haben Sie eine Rückruffunktion zum Stoppen der Animation, eine zum Initiieren einer neuen AJAX-Anfrage und eine zum Anzeigen der empfangenen Daten für den Benutzer.

var promise = $.ajax({ url: "/myServerScript" });
promise.done(myStopAnimationFunction); promise.done(myOtherAjaxFunction); 
promise.done(myShowInfoFunction); promise.fail(myErrorFunction);
Nach dem Login kopieren

Auch nachdem der AJAX-Aufruf abgeschlossen ist, können Sie die Funktionen done() und fail() noch aufrufen und die Callback-Funktion kann sofort ausgeführt werden. Es gibt keine Variablenverwechslung zwischen verschiedenen Zuständen. Wenn ein AJAX-Aufruf endet, behält er den Status „Erfolg“ oder „Fehler“ bei und dieser Status ändert sich nicht.

Sie können Versprechen zusammenführen. Manchmal müssen Sie zwei AJAX-Anfragen gleichzeitig stellen und möchten eine Funktion aufrufen, wenn beide AJAX-Anfragen erfolgreich sind. Um diese Aufgabe zu erfüllen, müssen Sie eine neue $.when()-Funktion verwenden:

var promise1 = $.ajax("/myServerScript1"); 
var promise2 = $.ajax("/myServerScript2");
$.when(promise1, promise2).done(function(xhrObject1, xhrObject2) { // 处理两个XHR对象 });
Nach dem Login kopieren

aufgeschoben

Einfach ausgedrückt ist das verzögerte Objekt die Callback-Funktionslösung von jQuery. Im Englischen bedeutet defer „Verzögerung“. Die Bedeutung eines verzögerten Objekts besteht also darin, die Ausführung bis zu einem bestimmten Punkt in der Zukunft zu „verzögern“.

Ein verzögertes Objekt kann das Gleiche tun wie ein Promise-Objekt, verfügt jedoch über zwei Funktionen zum Auslösen der Funktionen done() und fail().

Ein zurückgestelltes Objekt verfügt über die Funktion „resolve()“, um ein erfolgreiches Ergebnis zu verarbeiten und Funktionen im Zusammenhang mit done() auszuführen. Die Funktion „reject()“ wird verwendet, um fehlgeschlagene Ergebnisse zu verarbeiten und Funktionen im Zusammenhang mit fail() auszuführen.

Sie können Parameter sowohl für die Funktionen „resolve()“ als auch „reject()“ bereitstellen, und dann werden beide an die Rückruffunktionen übergeben, die sich auf done() und fail() beziehen.

Zusammenfassung

Der Ajax von jQuery besteht darin, ein Versprechensobjekt zurückzugeben, das die Methoden done() und fail() enthält.

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Ersetzen Sie Stringzeichen in JavaScript Ersetzen Sie Stringzeichen in JavaScript Mar 11, 2025 am 12:07 AM

Ersetzen Sie Stringzeichen in JavaScript

JQuery überprüfen, ob das Datum gültig ist JQuery überprüfen, ob das Datum gültig ist Mar 01, 2025 am 08:51 AM

JQuery überprüfen, ob das Datum gültig ist

JQuery Get Element Polsterung/Rand JQuery Get Element Polsterung/Rand Mar 01, 2025 am 08:53 AM

JQuery Get Element Polsterung/Rand

Top 5 Datum Manipulation JS -Plugins Top 5 Datum Manipulation JS -Plugins Feb 28, 2025 am 12:34 AM

Top 5 Datum Manipulation JS -Plugins

10 lohnt 10 lohnt Mar 01, 2025 am 01:29 AM

10 lohnt

10 JQuery Accords Registerkarten 10 JQuery Accords Registerkarten Mar 01, 2025 am 01:34 AM

10 JQuery Accords Registerkarten

JQuery fügen Sie Scrollbar zu Div hinzu JQuery fügen Sie Scrollbar zu Div hinzu Mar 01, 2025 am 01:30 AM

JQuery fügen Sie Scrollbar zu Div hinzu

10 AJAX/JQuery AutoComplete Tutorials/Plugins 10 AJAX/JQuery AutoComplete Tutorials/Plugins Feb 28, 2025 am 01:03 AM

10 AJAX/JQuery AutoComplete Tutorials/Plugins

See all articles