De la documentation $.when
[docs]:
Si une single Différé est passé à jQuery.when
, son objet Promise (un sous-ensemble des méthodes Deferred) est renvoyé par la méthode.
Donc, $.when(deferred).then(...)
est la même que deferred.promise().then(...)
.
L'objet de promesse est juste une interface limitée à l'objet différé. Il permet d'ajouter des callbacks, mais pas de changer l'état du Deferred (le résoudre, le rejeter). Donc, de façon concluante, il n'y a pratiquement aucune différence entre l'utilisation de $.when
et l'appel .then
directement sur l'objet différé.
Je ne pense pas qu'il est logique de passer un seul objet différé explicitement à $.when
, puisque vous n'avez aucun avantage. Cependant, il peut y avoir des situations dans lesquelles vous avez un nombre inconnu d'objets différés, ce qui signifie qu'il peut également s'agir d'un seul.
Je pense que vous avez mal compris ma question. Je demandais si envelopper un différé dans $ .when ajoute des fonctionnalités supplémentaires à un différé. Est-il toujours plus utile d'appeler les méthodes directement sur l'original unique différé? –
'$ .when' a pour but de créer un nouvel objet différé qui se résout lorsque tous les passés en différés sont résolus, ou échoue lorsque l'un d'entre eux échoue. Si vous ne passez qu'un seul objet différé, le même objet différé est simplement renvoyé. Vous pouvez trouver toutes ces informations depuis l'API http://api.jquery.com/jQuery.when/ –
J'ai relu cette page plus de 20 fois, et je comprends que l'objet promis est retourné :) Ma question est quand est-ce utile pour 1 différé? –