myFn.getMyCurrentPosition(data、function(data){//非同期コール、コールバックのようなデータを使用する必要がある - このセクションは機能しません。そして成功したコールバックのようなさまざまな機能でそれを使用gelocation - 非同期コールバックがエラーで動作しない - Javascript
var myFn = {
this.localVar : null,
mysuccess : function (position) {
this.myLocalVar = position.coords.latitude + ','+ position.coords.longitude;
return this.myLocalVar;
},
myerror : function (error) {
return null;
},
getMyCurrentPosition : function() {
if(navigator && navigator.geolocation) {
//WORKS - mysuccess sets data asyncrhonously.
return navigator.geolocation.getCurrentPosition(this.mysuccess, this.myerror);
}
},
myInitializer : function(){
//Initialize map, marker etc. for google maps API
myFn.getMyCurrentPosition(function(){ //Async call, need to use data like a callback
//This code never runs!
if(this.myLocalVar){
//doSomethingAfterCall - using this.myLocalVar, map, etc.;
}
});
}
}
更新:?TRIED THIS:
var myFn = {
mysuccess: function (position) {
myFn.myInitializer();
},
myerror: function (error) {
myFn.myInitializer();
},
myInitializer : function(){
//Initialize map, marker etc. for google maps API
},
onLoadSet : function(){
navigator.geolocation.getCurrentPosition(this.mysuccess, this.myerror);
}
}
myFn.onLoadSet();
このエラーを取得: 'ジオロケーション' on 'にgetCurrentPosition' を実行に失敗しました:として提供したコールバックをパラメータ1は関数ではありません。
のための三番目のパラメータとしてタイムアウトを追加します。 – tymeJV
編集された質問 –