Heim > Web-Frontend > js-Tutorial > Wie kann ich mit Rückgabewerten asynchroner AJAX-Aufrufe umgehen?

Wie kann ich mit Rückgabewerten asynchroner AJAX-Aufrufe umgehen?

Linda Hamilton
Freigeben: 2024-11-27 07:24:11
Original
342 Leute haben es durchsucht

How Can I Handle Asynchronous AJAX Call Return Values?

Asynchrone AJAX-Aufrufe und Variablenrückgabe

Bei der asynchronen Programmierung, beispielsweise bei AJAX-Aufrufen, ist die von der Funktion zurückgegebene Variable nicht sofort verfügbar, so wie der Aufruf selbst nicht sofort ausgeführt. Bei AJAX-Aufrufen erfolgt der Aufruf asynchron, d. h. er wird im Hintergrund ausgeführt, während der Rest des Codes weiter ausgeführt wird.

Das Problem, mit dem Sie konfrontiert sind, besteht darin, dass die Funktion get_data im bereitgestellten Code es versucht um das Ergebnis des AJAX-Aufrufs direkt zurückzugeben. Da der Aufruf jedoch asynchron ist, kann die Funktion nicht auf das Ergebnis warten, bevor sie zurückkehrt.

Lösung: Rückrufe verwenden

Um dieses Problem zu lösen, sollte die Funktion get_data so geändert werden, dass sie einen Rückruf verwendet Funktion. Eine Callback-Funktion ist eine Funktion, die als Argument an eine andere Funktion übergeben und später ausgeführt wird, nachdem die erste Funktion abgeschlossen wurde.

Im überarbeiteten Code:

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
  • Die get_data-Funktion akzeptiert jetzt einen zusätzlichen Parameter, Callback, eine Funktion, die nach Abschluss des AJAX-Aufrufs ausgeführt wird.
  • Im Success-Callback wird der Die Rückruffunktion wird mit dem Ergebnis des AJAX-Aufrufs als Argument aufgerufen.

So rufen Sie die get_data-Funktion mit einem Rückruf auf:

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

In diesem Beispiel eine anonyme Rückruffunktion wird verwendet, um das Ergebnis des AJAX-Aufrufs zu verarbeiten. Das Ergebnis des Aufrufs wird an die Hinweisfunktion übergeben.

Durch die Verwendung eines Rückrufs kann die Funktion get_data den AJAX-Aufruf initiieren und sofort zurückkehren, während die Rückruffunktion später ausgeführt wird, wenn das Ergebnis verfügbar ist.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Rückgabewerten asynchroner AJAX-Aufrufe umgehen?. 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