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..

警报:

基本的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...
            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是基于事件的,因此这是目前处理其基于事件性质的最干净的方法。这通常很干净。如果你看到这个解决方案带来的痛苦,也许有更好的方法来解决你的问题。我没有做错,我只是对什么时候需要数据有一个错误的想法。回想起来,这个解决方案真的很好。很好:)。很高兴这有帮助。