Maison >interface Web >js tutoriel >Comment obtenir les valeurs de retour des fonctions asynchrones JavaScript avec jQuery ?
La nature asynchrone de JavaScript pose souvent des défis pour obtenir immédiatement des valeurs de retour. Dans ce contexte, considérons une fonction jQuery qui récupère une valeur GUID via un appel asynchrone. Bien que la fonction alert() au sein de la fonction affiche le GUID avec succès, l'attribuer à une variable et renvoyer sa valeur s'est avéré insaisissable pour de nombreux développeurs.
Une approche courante de ce problème consiste à introduire une fonction de rappel en tant que paramètre. Cette méthode garantit que la fonction renvoie une promesse différée à la fin de l'appel asynchrone, permettant d'y attacher des rappels.
function trackPage() { var elqTracker = new jQuery.elq(459), dfd = $.Deferred(); elqTracker.pageTrack({ success: function() { elqTracker.getGUID(function(guid) { dfd.resolve(guid); }); } }); return dfd.promise(); } // Example usage: trackPage().done(function(guid) { alert("Got GUID: " + guid); });
Dans cet exemple, la fonction trackPage() renvoie désormais une promesse. Une fonction de rappel peut être attachée à l'aide de la méthode done() pour recevoir la valeur GUID une fois l'appel asynchrone terminé. Plusieurs rappels peuvent être enchaînés.
var pageHit = trackPage().done(function(guid) { alert("Page Hit GUID: " + guid); }); $("button").click(function() { pageHit.done(function(guid) { alert("Clicked on Page GUID: " + guid); }); });
L'objet $.Deferred fourni par jQuery permet aux développeurs de créer leur propre logique asynchrone qui renvoie des promesses, garantissant ainsi une interface cohérente dans toute l'application. D'autres modules jQuery, tels qu'AJAX, renvoient également des promesses, ce qui facilite la gestion des opérations asynchrones en JavaScript.
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!