将Ajax回调数据保存到变量中,而不是同步

时间:2014-03-19 04:27:27

标签: javascript jquery ajax

我在进行AJAX调用时有通常的回调方法。但是,我有一种情况需要将成功数据从回调存储到变量,但是当我尝试检索数据时,它会出现null。任何人都可以分享我遇到错误的地方吗?提前谢谢!

function getData(url, callback){
    $.ajax({
        type: 'GET', 
        url: url,
        success: callback 
    });    
};

var storeThedata = (function(){
    function theData(){
        var newdata = null;

        getData('someurl.json', function(data){
           newdata = data; // newdata now isn't null woo!
        });

        return newdata;
    }
    return { 
        getTheData: theData
    }
})();

var stored = storeThedata.getTheData();
console.log(stored); // Shouldn't be null

1 个答案:

答案 0 :(得分:0)

为什么不使用Ajax响应调用,可能你想要这样的东西。

$(document).ready( function(){
  $.ajax({
        type : 'POST',
        url : 'copycon.php',
        success : function(data){
    if(data=='saved')
    {
     alert("saved");
 console.log(data);
     
    }
    else
    alert("not save");
    console.log(data);
        },
        error : function(XMLHttpRequest, textStatus, errorThrown) 
        {alert ("Error Occured");}
                 });


});