Maison >interface Web >js tutoriel >Comment puis-je gérer efficacement des tableaux d'objets différés avec $.when() de jQuery ?

Comment puis-je gérer efficacement des tableaux d'objets différés avec $.when() de jQuery ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-19 10:15:14352parcourir

How Can I Effectively Handle Arrays of Deferred Objects with jQuery's $.when()?

Comprendre la gestion des tableaux différés dans $.when()

Dans un scénario similaire à celui démontré dans le JSFiddle fourni, un tableau de les tâches différées sont générées et transmises à $.when(). Cependant, $.when() attend par défaut des objets différés individuels comme arguments et peut ne pas gérer efficacement les tableaux.

Utilisation de Function.prototype.apply

Pour résoudre ce problème, vous pouvez utiliser Function.prototype.apply pour transmettre le tableau des différés en tant que paramètres distincts. Ceci peut être réalisé avec la syntaxe suivante :

$.when.apply($, my_array).then( ___ );

Cette approche étendra le tableau en une liste de différés individuels séparés par des virgules, permettant à $.when() de les traiter correctement.

Utilisation de l'opérateur de propagation ES6

Alternativement, si vous utilisez ES6 ou une version ultérieure, vous pouvez utiliser l'opérateur de propagation (...) pour obtenir le même effet de manière plus concise :

$.when(...my_array).then( ___ );

Gestion du nombre de paramètres dynamiques dans le gestionnaire .then()

Depuis le nombre de paramètres requis par le gestionnaire .then() est inconnu à l'avance, il est conseillé de traiter le tableau d'arguments pour extraire les résultats de chaque promesse. Cela peut être accompli dans la fonction de gestionnaire elle-même.

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!

Déclaration:
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