У меня есть script1
и script2
. Вот код из script1
:Функции и выполнение функции обратного вызова Javascript
var pos;
function foo(param){pos = param;}
bar(foo);
Сейчас в 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);
}
Как правильно передать foo
как функцию обратного вызова bar
и приковать его navigator.geolocation.getCurrentPosition
? Как я могу правильно получить pos
до script1
? Почему я не могу просто вернуть значения?
Как 'success' называют? –
https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition –
Из-за асинхронного поведения 'navigator.geolocation.getCurrentPosition', я рекомендую использовать обещания для того, что вам нужно. Вот ответ, который я представил для этого случая использования, ранее сегодня: http://stackoverflow.com/questions/38287407/cant-return-get-access-to-a-variable-inside-a-function/38287844#38287844 – jmealy