Maison > interface Web > js tutoriel > le corps du texte

Comment gérer les valeurs de retour asynchrones en JavaScript avec jQuery ?

Susan Sarandon
Libérer: 2024-10-22 07:43:30
original
515 Les gens l'ont consulté

How to Handle Asynchronous Return Values in JavaScript with jQuery?

Valeurs de retour asynchrones en JavaScript avec jQuery

En tentant de récupérer et d'attribuer une valeur GUID de manière asynchrone à l'aide de jQuery, les développeurs rencontrent souvent le problème où une alerte affiche la valeur avec succès mais la valeur reste indéfinie lorsque vous essayez de la renvoyer et de l'attribuer à une variable.

Cela se produit en raison de la nature des appels asynchrones. Lorsque la fonction elqTracker.pageTrack() est appelée, elle revient immédiatement, avant même que la fonction getGUID() ait fini de s'exécuter. Cela entraîne la définition de returnValue sur undefined.

Pour résoudre cette limitation, jQuery fournit l'objet $.Deferred. En renvoyant une promesse de trackPage(), nous pouvons y attacher des rappels pour gérer les résultats asynchrones.

<code class="javascript">function trackPage() {
  var elqTracker = new jQuery.elq(459),
    dfd = $.Deferred();

  elqTracker.pageTrack({
    success: function () {
      elqTracker.getGUID(function (guid) {
        dfd.resolve(guid);
      });
    }
  });

  return dfd.promise();
}</code>
Copier après la connexion

En attachant des rappels à la promesse renvoyée par trackPage(), nous pouvons désormais accéder à la valeur GUID lorsque elle devient disponible.

<code class="javascript">trackPage().done(function (guid) {
  alert("Got GUID:" + guid);
});</code>
Copier après la connexion

De plus, les promesses permettent d'enchaîner plusieurs rappels, offrant ainsi un moyen flexible de gérer les opérations asynchrones.

<code class="javascript">var pageHit = trackPage().done(function (guid) {
  alert("Page Hit GUID:" + guid);
});

$("button").click(function () {
  pageHit.done(function (guid) {
    alert("Clicked on Page GUID:" + guid);
  });
});</code>
Copier après la connexion

Cette approche garantit que la valeur renvoyée est gérée de manière asynchrone, permettant une affectation et un accès appropriés lors des opérations ultérieures.

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
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