Maison > interface Web > js tutoriel > le corps du texte

La différence entre différé et promis dans jQuery_jquery

WBOY
Libérer: 2016-05-16 15:06:39
original
1156 Les gens l'ont consulté

Quelle est la différence entre différé et promis ?

promesse

Une promesse est un objet renvoyé par une fonction asynchrone. Lorsque vous souhaitez écrire vous-même une telle fonction, vous devez utiliser un différé.

var promise = $.ajax({
url: "/myServerScript"
});
promise.done(mySuccessFunction); 
promise.fail(myErrorFunction); 
var promise = $.ajax({
url: "/myServerScript"
}); 
promise.then(mySuccessFunction,myErrorFunction); 
Copier après la connexion

Les avantages de l'utilisation des Promesses sont les suivants :

Vous pouvez appeler les fonctions done() et fail() plusieurs fois et utiliser différentes fonctions de rappel. Peut-être avez-vous une fonction de rappel pour arrêter l'animation, une pour lancer une nouvelle requête AJAX et une pour afficher les données reçues à l'utilisateur.

var promise = $.ajax({ url: "/myServerScript" });
promise.done(myStopAnimationFunction); promise.done(myOtherAjaxFunction); 
promise.done(myShowInfoFunction); promise.fail(myErrorFunction);
Copier après la connexion

Même une fois l'appel AJAX terminé, vous pouvez toujours appeler les fonctions done() et fail(), et la fonction de rappel peut être exécutée immédiatement. Il n'y a pas de confusion de variables entre les différents états. Lorsqu'un appel AJAX se termine, il conserve un statut de réussite ou d'échec et ce statut ne change pas.

Vous pouvez fusionner des promesses. Parfois, vous devez effectuer deux requêtes AJAX en même temps et souhaitez appeler une fonction lorsque les deux requêtes AJAX réussissent. Pour accomplir cette tâche, vous devez utiliser une nouvelle fonction $.when() :

var promise1 = $.ajax("/myServerScript1"); 
var promise2 = $.ajax("/myServerScript2");
$.when(promise1, promise2).done(function(xhrObject1, xhrObject2) { // 处理两个XHR对象 });
Copier après la connexion

différé

Pour faire simple, l'objet différé est la solution de fonction de rappel de jQuery. En anglais, defer signifie « retard », donc la signification d'un objet différé est de « retarder » l'exécution jusqu'à un certain point dans le futur.

Un objet différé peut faire la même chose qu'un objet promis, mais il a deux fonctions pour déclencher les fonctions done() et fail().

Un objet différé a une fonction solve() pour gérer un résultat réussi et exécuter les fonctions liées à done(). La fonction rejet() est utilisée pour gérer les résultats ayant échoué et exécuter les fonctions liées à fail().

Vous pouvez fournir des paramètres aux fonctions résoudre() et rejeter(), puis ils seront tous deux transmis aux fonctions de rappel liées à done() et fail().

Résumé

L'ajax de jQuery consiste à renvoyer un objet de promesse, qui contient les méthodes done(), fail() différé est le processus de retour de cet objet de promesse.

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal