Heim > Web-Frontend > js-Tutorial > Warum gibt meine AJAX-Funktion keine Variable zurück und wie kann ich das Problem mithilfe von Rückrufen beheben?

Warum gibt meine AJAX-Funktion keine Variable zurück und wie kann ich das Problem mithilfe von Rückrufen beheben?

Mary-Kate Olsen
Freigeben: 2024-12-08 20:17:17
Original
213 Leute haben es durchsucht

Why Doesn't My AJAX Function Return a Variable, and How Can I Fix It Using Callbacks?

Variable wird von AJAX-Funktion nicht zurückgegeben

Beim Aufteilen eines Frameworks in mehrere Dateien kann es zu einem Problem kommen, bei dem eine Variable nicht zurückgegeben wird aus einer AJAX-Funktion. Während die Variable in der JS-Datei nicht leer ist, erscheint sie in der Hauptausführung leer.

Ursprüngliches Funktionsmuster:

var lock_get = 0;

function get_data(data, destination) {
  if (lock_get == 0) {
    lock_get = 1;
    $.ajax({
      type: "POST",
      url: destination,
      async: true,
      data: data,
      success: function(data) {
        lock_get = 0;
        if (data) {
          return data;
        }
      }
    });
  }
};
Nach dem Login kopieren

Ausführung:

var test = get_data(data, destination);
notice(test);
Nach dem Login kopieren

Im ursprünglichen Ansatz versucht die Funktion get_data, das Ergebnis des AJAX-Aufrufs zurückzugeben, schlägt jedoch fehl aufgrund der asynchronen Natur von AJAX.

Lösung: Rückrufe verwenden

Um dieses Problem zu beheben, können Sie Rückrufe verwenden. Durch Übergabe einer Callback-Funktion an get_data kann das Ergebnis verarbeitet und zurückgegeben werden:

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);
        }
      }
    });
  }
};
Nach dem Login kopieren

Ausführung (mit Callback):

get_data(data, destination, function(test) {
  notice(test);
});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum gibt meine AJAX-Funktion keine Variable zurück und wie kann ich das Problem mithilfe von Rückrufen beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage