Javascript 在启动回调后如何使用/存储JSON数据?
警报: 基本的javascript问题。。。如何从成功处理中获取数据并返回JSON对象 是否有一个地方可以放置此代码:Javascript 在启动回调后如何使用/存储JSON数据?,javascript,Javascript,警报: 基本的javascript问题。。。如何从成功处理中获取数据并返回JSON对象 是否有一个地方可以放置此代码: function Geo() { navigator.geolocation.getCurrentPosition( function(position) { I DONT WANT TO USE position here... I want to place it in a var like so..
function Geo() {
navigator.geolocation.getCurrentPosition(
function(position) {
I DONT WANT TO USE position here...
I want to place it in a var like so...
this.data = position; // or something similar?
},
function errorCallback(error) {
//do error handling
}
);
}
var geo = new Geo();
geo.????? how can I get that data?
我尝试了这个,但是它这个。数据没有定义
在函数内部调用该函数以获取数据?我想得到damand上的数据,并使用这些数据填充不同的字段。我不能随时使用这些数据
var data = ???
我假设getCurrentPosition()是一个AJAX调用,所以您需要定义一个回调,这样您的JS执行就不会在等待时挂起
function Geo(cb) {
navigator.geolocation.getCurrentPosition(
function(position) {
I DONT WANT TO USE position here...
I want to place it in a var like so...
cb(null, position);
this.data = position; // or something similar?
},
function errorCallback(error) {
//do error handling
cb(error);
}
);
}
var geo = new Geo(function(err, data){
//this will be executed once the data is actually ready
if(err) {
console.log(err); //handle the error
} else {
console.log(data); //handle success
}
});
您必须在回调中执行此操作;这就是重点。欢迎来到奇妙的异步世界!你不能这么做。所以每次我需要数据的时候我都要复制这个代码?WTF?看。我很难过这是javascript提供的唯一解决方案。“非常感谢。”菲尔·赛德?你希望得到什么?JS是基于事件的,因此这是目前处理其基于事件性质的最干净的方法。这通常很干净。如果你看到这个解决方案带来的痛苦,也许有更好的方法来解决你的问题。我没有做错,我只是对什么时候需要数据有一个错误的想法。回想起来,这个解决方案真的很好。很好:)。很高兴这有帮助。