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

Comment obtenir les valeurs de retour des fonctions asynchrones JavaScript avec jQuery ?

Patricia Arquette
Libérer: 2024-10-22 07:45:18
original
786 Les gens l'ont consulté

How to Obtain Return Values from JavaScript Asynchronous Functions with jQuery?

Valeur de retour asynchrone 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);
});
Copier après la connexion

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);
    });
});
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!