2012-06-05 32 views
0

我嘗試操作一個函數內的變量。但是,一旦我退出函數,似乎會忘記這些值,儘管變量是在函數外部聲明的。在javascript中維護變量外部函數的值?

基本代碼:

var posts = {};     

      // Perform a data request 
      // skjutsgruppens-page 
      $.oajax({ 
       url: "https://graph.facebook.com/197214710347172/feed?limit=500", 
        *SNIP* 
        success: function(data) { 
        $.extend(posts, data); 
       } 
      }); 


      // Gruppen 
      $.oajax({ 
       url: "https://graph.facebook.com/2388163605/feed?limit=500", 
       *snip* 
       success: function(data) { 
        $.extend(posts, data); 
       } 
      }); 

來自Facebook的oajax retrievies數據。我想創建一個包含來自兩個oajax方法的數據的變量。

的實際代碼:http://eco.nolgren.se/demo/resihop/#

+0

不,不怕:/ – Himmators

+0

這只是一個很陌生的人......看起來好像擴展方法只適用於我重新加載頁面。跆拳道? – Himmators

回答

2

的問題是可能的success函數執行在未來任意時間 - 除非你專門訪問posts知道success功能已被執行之後,您將收到未定義的結果,完全取決於功能和訪問時間。

最好的辦法是通過在成功函數內部做必要的工作,正確處理這個問題,或者使用類似jQuery的.when function

+0

你是對的,當我得到答案時,成功執行。那是我想用數據擴展文章的時候。那不是我在做什麼? – Himmators

+0

@KristofferNolgren您告訴我們 - 在成功函數中,在調用'extend'後,對象中的數據是?數據的格式是否適合'.extend'使用?你在什麼時候訪問'posts'並且數據是* not * there? –

+0

它似乎在那裏,就好像帖子中的數據是來自上次加載頁面的數據,並且它在兩個對象之間交替。我真的不明白... – Himmators

相關問題