Maison > interface Web > js tutoriel > Comment puis-je transmettre un tableau d'objets différés au « $.when() » de jQuery ?

Comment puis-je transmettre un tableau d'objets différés au « $.when() » de jQuery ?

Mary-Kate Olsen
Libérer: 2024-12-09 21:57:13
original
648 Les gens l'ont consulté

How Can I Pass an Array of Deferred Objects to jQuery's `$.when()`?

Passer un tableau de différés à $.when()

Lorsque vous traitez un ensemble complexe de tâches asynchrones, il peut être pratique de transmettez un tableau d'objets différés à la méthode $.when() pour avertir lorsque toutes les tâches sont terminées. Cependant, par défaut, $.when() attend des objets Deferred séparés en tant que paramètres individuels, ce qui peut s'avérer peu pratique si le nombre d'objets Deferred est inconnu. Cet article fournit une solution à ce problème en utilisant Function.prototype.apply.

Solution :

Pour transmettre un tableau d'objets différés à $.when(), utilisez la méthode Function.prototype.apply comme suit :

$.when.apply($, my_array).then( ___ );
Copier après la connexion

Cela vous permet de transmettre un tableau d'objets différés comme argument unique à $.quand(). L'exemple de code ci-dessous illustre cette approche :

var deferreds = getSomeDeferredStuff();
$.when.apply($, deferreds).done(function() {
    $("div").append("<p>All done!</p>");
});
Copier après la connexion

ES6:

Dans ES6, vous pouvez utiliser l'opérateur spread (...) au lieu de Function.prototype .apply :

$.when(...my_array).then( ___ );
Copier après la connexion

Remarque :

Il est important de notez que la fonction de gestionnaire fournie à la méthode .then() doit traiter le tableau d'arguments pour récupérer le résultat de chaque promesse. Étant donné que le nombre de paramètres formels dont le gestionnaire aura besoin est probablement inconnu à l'avance, le gestionnaire doit en conséquence traiter le tableau d'arguments.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal