2014-03-19 53 views
-1

在進行AJAX調用時,我有通常的回調方法。但是,我有一種情況,我需要將回調中的成功數據存儲到變量中,但是當我嘗試檢索數據時,它會顯示爲空。任何人都可以分享一些光線到我要去的地方嗎?提前致謝!將Ajax回調數據保存到不同步的變量中

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 
+3

可能重複的[如何從AJAX調用返回響應?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-調用) –

+0

@Pilot它不一定是重複的,因爲我在描述使用回調並在另一個函數中再次使用THAT函數時描述的模式。如果你讀過我的代碼,你會發現它試圖實現不同的東西。 – jms

+0

@ Jessi您正在返回外部回調函數中的newdata,並且Asych行爲可能爲null –

回答

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");} 
                }); 


}); 
相關問題