2013-03-22 145 views
-1

我有一個Ext.Ajax.request成功的函數。我需要這個函數返回一個帶有JSON Store的變量。 我的代碼是:Ajax請求成功變量範圍

gridplatos.getStore().each(function(r){ 
    var store; 
    Ext.Ajax.request({ 
    params:{ 
     grado: r.get('grado'), 
     menudiario: r.get('menudiario'), 
     plato: r.get('plato'), 
     transCode: Ext.getCmp('transCode').getValue() 
    }, 
    url: 'src/Drivers/AlumnosPlatoArmado/', 
    method: 'GET', 
    success: function(response,store){ 
     store = Ext.create('KMA.store.AlumnosPlatoArmado',{}).load(); 
    } 
    }); 
    console.log(store); 
} 

但是,執行console.log(存儲)返回 「不確定」。任何想法 ?

回答

0

這是因爲ajax是一個異步函數調用,意味着一旦請求被髮送到服務器,客戶端將繼續執行以下語句而不等待服務器響應。

在你的情況的AJAX請求被髮送到src/Drivers/AlumnosPlatoArmado/然後回前console.log(store);是在時間store該點執行的服務器響應的值爲undefined。一旦ajax請求成功完成,註冊的成功處理程序將被調用,在那裏設置store的值。

在異步執行環境中,異步方法返回值的所有操作必須僅在已註冊的回調方法中執行。

+0

謝謝!如何解決這個問題? – ramiromd 2013-03-22 12:20:48

+0

你想怎麼樣的商店,如果你可以給我們的問題的完整背景,我們可以嘗試 – 2013-03-22 12:23:40

+0

我有一個商店(A)刷新其他商店(B)。但現在我需要與兩個商店創建一個txt文件。例如:「來自A的行 - 來自B的行 - 來自A的行 - 來自B的行......」 – ramiromd 2013-03-22 12:30:02