【发布时间】:2016-05-18 19:55:30
【问题描述】:
myFn.getMyCurrentPosition(data, function(data){ //异步调用,需要像回调一样使用数据 - 这部分不起作用。如何使用当前位置坐标并在不同的函数中使用它,如成功回调?
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.;
}
});
}
}
更新:尝试过:
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();
出现此错误:无法在“地理位置”上执行“getCurrentPosition”:作为参数 1 提供的回调不是函数。
【问题讨论】:
-
getMyCurrentPosition不带任何参数...所以。
标签: javascript asynchronous geolocation asynccallback