Maison > interface Web > js tutoriel > Comment puis-je gérer correctement les valeurs de retour variables des appels AJAX asynchrones ?

Comment puis-je gérer correctement les valeurs de retour variables des appels AJAX asynchrones ?

Patricia Arquette
Libérer: 2024-11-27 22:46:11
original
1007 Les gens l'ont consulté

How Can I Correctly Handle Variable Return Values from Asynchronous AJAX Calls?

Appels AJAX asynchrones et valeurs de retour variables

Lorsque vous utilisez AJAX pour effectuer des requêtes asynchrones, il est important de comprendre comment fonctionnent les valeurs de retour variables. Dans le scénario décrit, une fonction dans un fichier JavaScript distinct effectue un appel AJAX mais la valeur renvoyée n'est pas définie correctement.

Description du problème

La fonction get_data dans un fichier JavaScript séparé effectue une requête AJAX et vise à renvoyer les données reçues du serveur. Cependant, cette approche ne fonctionne pas car l'appel AJAX est asynchrone.

Explication

Les appels AJAX asynchrones n'attendent pas le retour de la réponse avant de poursuivre l'exécution de la fonction appelante. Dans ce cas, la fonction get_data revient avant que la requête AJAX ne soit terminée, ce qui entraîne une variable de test vide.

Solution

Pour résoudre ce problème, nous devons gérer la nature asynchrone d'AJAX. Cela peut être fait en fournissant une fonction de rappel à la fonction get_data, qui sera exécutée lorsque la requête AJAX sera terminée et que les données seront disponibles.

Voici le code mis à jour :

function get_data(data, destination, callback) {

    if (lock_get == 0) {
        lock_get = 1;
        $.ajax({
            type: "POST",
            url: destination,
            async: true,
            data: data,
            success: function(data) {
                lock_get = 0;
                if (data && callback) {
                    callback(data);
                }
            }
        });
    }
}
Copier après la connexion

Utilisation

La fonction mise à jour get_data doit être appelée avec la fonction de rappel comme troisième argument :

get_data(data, destination, function(test){
    notice(test);
});
Copier après la connexion

En utilisant une fonction de rappel, le code peut désormais gérer le résultat de la requête AJAX lorsqu'elle devient disponible.

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