在回调被触发后如何使用/存储JSON数据?

时间:2013-12-26 17:38:18

标签: 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...
            this.data = position; // or something similar?

        },
        function errorCallback(error) {
            //do error handling
        }
    );
}
var geo = new Geo();
geo.????? how can I get that data?

我尝试了这个,但它this.data回来未定义

在函数内部并调用该函数来获取数据?我想在damand上获取该数据并使用该数据填充不同的字段。我不能总是在那里使用那些数据。

var data = ???

1 个答案:

答案 0 :(得分:1)

我假设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
   }
});