Valeur de retour asynchrone JavaScript avec jQuery
Question :
Comment pouvons-nous accéder de manière fiable au Valeur GUID renvoyée par une fonction jQuery asynchrone ?
Réponse :
Les appels asynchrones, de par leur nature, ne peuvent pas fournir de valeur de retour. Les fonctions asynchrones de jQuery reviennent immédiatement, ce qui signifie que la valeur qu'elles produisent n'est pas disponible au retour de la fonction.
Solution :
Il existe deux approches principales pour relever ce défi :
1. Fonctions de rappel :
Cela implique de transmettre une fonction de rappel à la fonction asynchrone, qui reçoit le résultat lorsqu'il devient disponible.
<code class="javascript">function trackPage() { var elqTracker = new jQuery.elq(459); elqTracker.pageTrack({ success: function() { elqTracker.getGUID(function(guid) { // Handle the GUID here alert(guid); }); } }); }</code>
2. Promesses :
Les objets différés (promesses) de jQuery vous permettent de créer une logique asynchrone qui renvoie une promesse. Des rappels peuvent être joints à ces promesses pour recevoir le résultat lorsqu'il sera disponible.
<code class="javascript">function trackPage() { var elqTracker = new jQuery.elq(459); var dfd = $.Deferred(); elqTracker.pageTrack({ success: function() { elqTracker.getGUID(function(guid) { dfd.resolve(guid); }); } }); return dfd.promise(); } // Usage: trackPage().done(function(guid) { alert("Got GUID: " + guid); });</code>
Remarques supplémentaires :
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!