Différé contre la promesse
Quelle est la différence entre Différé et la Promesse de l'autre que les versions de jQuery?
Que dois-je utiliser pour mon besoin? Je ne veux appeler la fooExecute()
. J'ai seulement besoin de la fooStart()
et fooEnd()
à bascule html div état par exemple.
//I'm using jQuery v2.0.0
function fooStart() { /* Start Notification */ }
function fooEnd() { /* End Notification */ }
function fooExecute() { /* Execute the scripts */ }
$('#button1').on('click', function() {
var deferred1 = $.Deferred();
var promise1 = $.Promise();
deferred1.???
promise1.???
});
- l'aide Possible?
- Vous ne pouvez pas modifier l'état de la promesse. Ainsi, il est traité à la demande de la logique (qui n'ont pas d'affaires dans les manipulations avec les conditions de logique pour résoudre ou de rejeter) - attendre la résolution de l'usine de la logique qui a effectivement créé, que différé. Différé peut être
resolve
d oureject
ed changer son état, qui sa Promesse reflètent aussi. Dites-moi comment vous voulez utiliser deferreds pour les clics? - Je ne pense pas que votre exemple pourrait bénéficier de promesses (ou je ne le comprends pas). Peut-être avoir un coup d'oeil à Comment peut-jQuery différés être utilisé?.
Vous devez vous connecter pour publier un commentaire.
Première: Vous ne pouvez pas utiliser
$.Promise();
parce qu'il n'existe pas.Un différée objet est un objet qui peut créer une promesse et de modifier son état de
resolved
ourejected
. Deferreds sont généralement utilisés si vous écrivez votre propre fonction et souhaitez proposer une promesse au code appelant. Vous êtes le producteur de la valeur.Un promesse est, comme son nom l'indique, une promesse sur l'avenir de la valeur. Vous pouvez joindre des rappels pour obtenir cette valeur. La promesse a été "donnée" à vous et vous êtes récepteur de la valeur future.
Vous ne pouvez pas modifier l'état de la promesse. Seul le code que créé la promesse de changer son état.
Exemples:
1. (produire) Vous utilisez différés objets lorsque vous souhaitez fournir promesse de soutien pour vos propres fonctions. Vous calculer une valeur et que vous souhaitez contrôler lorsque la promesse est résolu.
2. (avant) Si vous appelez une fonction qui lui-même renvoie une promesse, alors vous n'avez pas à créer votre propre objet reporté. Vous pouvez simplement retourner cette promesse. Dans ce cas, la fonction ne crée pas de valeur, mais la transmet (type de):
3. (recevoir) Parfois, vous ne voulez pas créer ou transmettre des promesses/valeurs, vous voulez les utiliser directement, c'est à dire que vous êtes le destinataire de l'information:
Bien sûr, tous ces cas d'utilisation peuvent être mixtes. Votre fonction peut être le récepteur de la valeur (à partir d'un appel Ajax par exemple) et de calcul (produire) une valeur différente sur cette base.
Questions connexes:
Une promesse est quelque chose que vous pouvez définir sur un différée objet qui s'exécute lorsque le report de la collection est complète.
Exemple de la jQuery documentation:
Ici, il est en JSFiddle
Il exécute une fonction sur chaque
div
et exécute le.promise
code lorsque tous les.each
exécutions sont complètes.