2015-07-19 1 views
0

Je regardais un exemple de $.deferred. Dans cet exemple, ils utilisent .promise, je ne comprends vraiment pas le rôle là-bas parce que je reçois le même résultat sans cela, donc je veux savoir dans lequel il est nécessaire d'utiliser .promise ou comment pouvons-nous justifier .promise dans un exemple donné.Quand utiliser la méthode .promise dans jquery

Si je viens d'utiliser return deferred, ça marche bien aussi.

function waitforms(ms){ 
var deferred= $.Deferred(); 
setTimeout(function(){ 
deferred.resolve(new Date()) 
},ms) 

return deferred.promise(); // working with return deferred also 
} 

waitfor(2000).done(function(date){ 
console.log('Contrived example finished at'+ date.getTime()) 
}) 
+1

https://api.jquery.com/deferred.promise/ - semble expliquer dans joliment – user2864740

+0

Pourquoi diable quelqu'un serait voter vers le bas cette question? S'il vous plaît faites un effort pour poster dans l'explication de l'affichage aussi bien quand vous donnez une question un pouce vers le bas. +1 à questionner de mon côté. –

Répondre

1

Une promesse est un sous-ensemble protégé et plus limité d'un différé.

Avec un différé, vous pouvez résoudre ou rejeter la promesse en plus de toutes les méthodes normales telles que .then().

Avec une promesse, vous avez toujours toutes les méthodes normales comme .then() pour surveiller l'état de la promesse, mais vous ne pouvez pas le résoudre ou le rejeter. Par conséquent, une promesse est utilisée pour laisser les gens surveiller une opération, mais pas la déclencher réellement. Vous devriez obtenir la promesse et la rendre aux autres quand c'est tout ce qu'ils devraient être capables de faire (surveiller). Vous pouvez autoriser les utilisateurs à accéder à l'objet différé s'ils sont en mesure de provoquer une résolution ou de le rejeter.

Habituellement, seule la promesse devrait aller au monde extérieur et le différé devrait être gardé interne à l'opération elle-même.