私はscript1
とscript2
です。ここにscript1
からいくつかのコードは次のとおりです。JavaScriptはコールバック関数と実行を理解しています
script2
で今
var pos;
function foo(param){pos = param;}
bar(foo);
:
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);
}
にはどうすれば正しくbar
へのコールバック関数としてfoo
を渡し、navigator.geolocation.getCurrentPosition
にそれを連鎖していますか? pos
を正しくscript1
に戻すにはどうすればよいですか?代わりに値を返すのはなぜですか?
に再渡すコールバックする必要がありますか? –
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