Heim > Web-Frontend > js-Tutorial > Wie kann ich auf den Rückgabewert eines asynchronen AJAX-Aufrufs zugreifen?

Wie kann ich auf den Rückgabewert eines asynchronen AJAX-Aufrufs zugreifen?

DDD
Freigeben: 2024-11-25 08:20:10
Original
577 Leute haben es durchsucht

How Can I Access the Return Value of an Asynchronous AJAX Call?

Asynchrone AJAX-Aufrufe und Variablenrückgabe

Im Zusammenhang mit der Aufteilung Ihres Framework-Codes in separate Dateien ist ein Problem mit der Rückgabe aufgetreten Der Wert einer über AJAX aufgerufenen Funktion war nicht zugänglich. Diese Verwirrung rührt von der asynchronen Natur von AJAX-Aufrufen her.

AJAX-Aufrufe: Asynchronität erklärt

AJAX-Funktionen (Asynchronous JavaScript and XML) arbeiten asynchron. Das bedeutet, dass bei einer AJAX-Anfrage die Funktion, die die Anfrage stellt, nicht auf den Abschluss der Antwort wartet, bevor sie mit der Ausführung fortfährt. Dadurch können andere Teile des Programms parallel weiterlaufen, während die AJAX-Anfrage ausgeführt wird.

Funktionsrückgabe und AJAX

Im Fall Ihrer get_data-Funktion: Die Return-Anweisung innerhalb der Success-Callback-Funktion wird nicht sofort ausgeführt, wenn die Funktion aufgerufen wird. Stattdessen wird es erst ausgeführt, wenn die AJAX-Anfrage abgeschlossen ist und die Antwort empfangen wurde.

Lösung: Rückrufe verwenden

Um dieses Problem zu beheben, sollten Sie Folgendes angeben eine Rückruffunktion für die Funktion get_data. Dieser Rückruf wird ausgeführt, wenn die AJAX-Anfrage abgeschlossen ist und die Antwortdaten verfügbar sind. Der geänderte Code würde so aussehen:

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

Der aufrufende Code würde dann geändert, um eine Rückruffunktion zu übergeben:

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

Auf diese Weise können die Antwortdaten innerhalb verarbeitet werden die Rückruffunktion, wenn die AJAX-Anfrage abgeschlossen ist.

Das obige ist der detaillierte Inhalt vonWie kann ich auf den Rückgabewert eines asynchronen AJAX-Aufrufs zugreifen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage