Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Wie asynchroner Request in Funktion verwenden

Frage Entwicklung JavaScript

Mitglied: mabue88

mabue88 (Level 2) - Jetzt verbinden

18.09.2013 um 14:23 Uhr, 1367 Aufrufe, 2 Kommentare

Hallo,

ich nutze den Geocoder von Google um die Koordinaten zu einer Adresse zu erhalten. Der Request erfolgt dabei asynchron. Ich will aber eine Funktion erstellen, der ich die Adresse übergebe und als Antwort dir dazugehörigen Koordinaten erhalten. Hat jemand einen Tipp dafür?

So weit bin ich bis jetzt:
[code]
function KoordinatenInAdresseUmwandeln(adresse) {
var geocoder = new google.maps.Geocoder();

geocoder.geocode({ 'address': adresse }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
koordinaten = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng());
}
else
alert('error: ' + status);
});

return "noch nichts";
}
[/code]
Mitglied: Nobody-Is-Perfect
18.09.2013 um 14:34 Uhr
Hi mabue88,

Du versuchst hier aus dem asynchronen Schema auszubrechen.

Im Normalfall würde man der function einfach das Ziel des Ergebnisses mitteilen, z.B. die ID des DOM - Elements
und in der Ergebnisfunktion "function (results, status) {" das Element suchen und den Wert setzen.
Dann bleibt alles schön asynchron und die Funktion selbst hat keine Rückgabe.

Wenn man jedoch auf die Ausführung warten muss, kann man sich mal unter dem Stichwort "Deferred" bei jQuery schlau machen.


Grüße vom Nobody
Bitte warten ..
Mitglied: colinardo
20.09.2013, aktualisiert um 13:01 Uhr
Hallo mabue88,
du könntest deine "Function" so gestalten um sie an mehreren Stellen in deinem Code zu verwenden:
01.
getCoords = function(adresse, f){ 
02.
	var geocoder = new google.maps.Geocoder(); 
03.
	geocoder.geocode({ 'address': adresse }, function (results, status) { 
04.
		if (status == google.maps.GeocoderStatus.OK) { 
05.
			koordinaten = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()); 
06.
			f("OK",koordinaten); 
07.
		} else { 
08.
			f("ERROR",status);	 
09.
10.
	}); 
11.
}
Um dann die Koordinaten abzufragen benutzt du folgenden Aufruf welchen du in dein synchrones Schema einbauen kannst.
01.
getCoords("Berlin", function(status,result) { 
02.
	if (status == "OK"){ 
03.
                // die variable 'result' enthält hier die Koordinaten 
04.
	}else{ 
05.
		// die Variable 'result' enthält hier den Fehler;	 
06.
07.
});
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Multimedia & Zubehör
MIDI-Controller mit 2 Programmen verwenden (2)

Frage von peterla zum Thema Multimedia & Zubehör ...

Hosting & Housing
gelöst Lets encrypt Zertifikat intern verwenden, bearbeiten der hosts Datei (6)

Frage von horstvogel zum Thema Hosting & Housing ...

Hyper-V
gelöst Nach Updateinstallation - Hyper-V-Replikation stellt die Funktion ein (7)

Frage von DerWoWusste zum Thema Hyper-V ...

Microsoft Office
Formel-Funktion in Word produziert unsaubere Resultate bei Indizes (1)

Frage von Yauhun zum Thema Microsoft Office ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Basic
Programmierung von Windows Programmen (9)

Frage von Ghost108 zum Thema Basic ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (9)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

C und C++
Fehlendes verständiss von C und C++ (8)

Frage von zelamedia zum Thema C und C ...