Ich habe script1
und script2
. Hier ist ein Code von script1
:Javascript Verständnis Callback-Funktionen und Ausführung
var pos;
function foo(param){pos = param;}
bar(foo);
Jetzt in script2
:
function bar(callback){
//prints 'function'
console.log(typeof callback);
navigator.geolocation.getCurrentPosition(
success,
fail
);
}
function success(position, callback){
//prints 'undefined'
console.log(typeof callback);
var pos= {
lat: position.coords.latitude,
long: position.coords.longitude
};
callback(pos);
}
Wie richtig passiere ich foo
als Callback-Funktion bar
und Ketten es navigator.geolocation.getCurrentPosition
? Wie kann ich pos
zurück zu script1
bekommen? Warum kann ich nicht einfach die Werte zurückgeben?
Wie wird 'success' aufgerufen wird? –
https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition –
Aufgrund des asynchronen Verhaltens von 'navigator.geolocation.getCurrentPosition' empfehle ich Versprechungen für das, wonach Sie suchen. Hier ist eine Antwort, die ich für diesen Anwendungsfall früher heute eingereicht habe: http://stackoverflow.com/questions/38287407/cant-return-get-access-to-a-variable-inside-a-function/38287844#38287844 – jmealy