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
Linda HamiltonOriginal
2024-11-27 07:24:11339Durchsuche

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);
        }
      }
    });
  }
}
  • 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);
});

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!

Stellungnahme:
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