Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum sind die Rückgabewerte meiner AJAX-Funktion leer?

Patricia Arquette
Freigeben: 2024-11-21 14:08:12
Original
216 Leute haben es durchsucht

Why Are My AJAX Function Return Values Empty?

Das Rätsel der nicht zurückgegebenen Variablen in AJAX-Funktionen

Im Bereich von Webanwendungen ist es üblich, JavaScript-Code zur Verbesserung in separate Dateien zu modularisieren Organisation und Wartbarkeit. Allerdings kann dieser Übergang zu rätselhaften Problemen führen, wie zum Beispiel, dass Variablen scheinbar verschwinden, wenn sie von AJAX-Funktionen zurückgegeben werden.

Problem:

Nach der Aufteilung eines Frameworks in mehrere Dateien, ein Entwickler Es tritt ein Problem auf, bei dem eine von einer AJAX-Funktion zurückgegebene Variable leer bleibt. Obwohl die Daten in der JS-Datei vorhanden sind, werden sie bei der Ausführung nicht zurückgegeben. Der untersuchte Code:

function get_data(data, destination) {
  ...
  if (data) {
    return data;
  }
}
Nach dem Login kopieren
var test = get_data(data, destination);
Nach dem Login kopieren

Ursache:

Die asynchrone Natur von AJAX-Aufrufen ist der Übeltäter. Ein AJAX-Aufruf wird im Hintergrund ausgeführt, d. h. der Code wird weiter ausgeführt, ohne auf die Antwort zu warten. Folglich kehrt die Funktion get_data zurück, bevor der AJAX-Aufruf abgeschlossen ist, was zu einer leeren Testvariablen führt.

Lösung:

Um dieses Problem zu beheben, ist die Verwendung eines Rückrufs erforderlich Funktion zur Verarbeitung der AJAX-Antwort. Wenn der AJAX-Aufruf abgeschlossen ist, wird eine Rückruffunktion aufgerufen, die Ihnen den Zugriff auf die zurückgegebenen Daten ermöglicht.

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

Das obige ist der detaillierte Inhalt vonWarum sind die Rückgabewerte meiner AJAX-Funktion leer?. 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