Heim > Web-Frontend > js-Tutorial > Wie kann ich Werte von asynchronen Rückruffunktionen in JavaScript zurückgeben?

Wie kann ich Werte von asynchronen Rückruffunktionen in JavaScript zurückgeben?

Linda Hamilton
Freigeben: 2024-12-27 01:15:09
Original
340 Leute haben es durchsucht

How Can I Return Values from Asynchronous Callback Functions in JavaScript?

Asynchrone Rückrufe: Werte zurückgeben

Die Rückgabe von Werten von asynchronen Rückruffunktionen kann aufgrund ihrer nicht blockierenden Natur eine Herausforderung sein. Hier ist eine Aufschlüsselung des Problems und eine Lösung:

Im bereitgestellten Beispiel:

function foo(address) {
  // Google Maps stuff
  geocoder.geocode({'address': address}, function(results, status) {
    // Unable to return results[0].geometry.location synchronously
  });
}
Nach dem Login kopieren

Im asynchronen Geokodierungsrückruf kann der Wert, den Sie zurückgeben möchten, nicht synchron abgerufen werden. Der Versuch, dies zu tun, führt zu einem undefinierten Wert.

Lösung: Rückruf mit Ergebnis

Um den Wert zu erhalten, können Sie eine Rückruffunktion an foo übergeben, das empfangen wird das Ergebnis:

function foo(address, callback) {
  geocoder.geocode({'address': address}, function(results, status) {
    callback(results[0].geometry.location); 
  });
}
Nach dem Login kopieren

Im Callback für foo kann man dann auf den Standort zugreifen Wert:

foo("address", function(location) {
  alert(location); // Result obtained here
});
Nach dem Login kopieren

Asynchrone Funktionsketten

Wenn ein asynchroner Aufruf in einer anderen Funktion verschachtelt ist, muss diese Funktion auch asynchron sein, damit der Rückgabewert erhalten werden kann . Erwägen Sie bei komplexen Szenarien die Verwendung einer Promise-Bibliothek wie Q, um asynchrone Vorgänge effizient zu verwalten.

Das obige ist der detaillierte Inhalt vonWie kann ich Werte von asynchronen Rückruffunktionen in JavaScript zurückgeben?. 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