gpt4 book ai didi

Ext.Ajax.request 中的 javascript 范围问题

转载 作者:行者123 更新时间:2023-12-02 20:05:42 25 4
gpt4 key购买 nike

我有这个类,它自动从服务器生成 JSON 存储。商店是动态创建的,并且可以在 Firebug 的 DOM 中查看。我认为我有一些范围问题。当我想在 Ext.Ajax.request 的回调函数“AdminSettings”存储中 console.log(Ext.getStore('AdminSettings')) (其中 AdminSettings 是创建的存储之一)返回,但如果我将 console.log(Ext.getStore('AdminSettings')) 放在回调函数之外的任何地方,我会在 firebug 中收到未定义的消息,并且我的商店未实例化。请参阅代码注释以查看其实际效果。

Ext.Ajax.request({
url : './account/getadminstores',
callback : function(options, success, response) {
var json = Ext.decode(response.responseText);
var adminStores = new Array();
// setup and intitialize on the fly stores
for ( var key1 in json) {
var storeFields = new Array();
for ( var key2 in json[key1]) {// if (i==1){break;}
for ( var key3 in json[key1][key2]) {
storeFields.push(key3);}
break;};
Ext.define('MA.store.' + key1, {
extend : 'Ext.data.Store',
fields : storeFields,
storeId : key1,
data : json[key1]
});
Ext.create('MA.store.'+key1);};
console.log(Ext.getStore('AdminSettings'));
//returns MA.store.AdminSettings in firebug and everything is fine
}
});//eof Ext.Ajax.request
console.log(Ext.getStore('AdminSettings'));
//returns undefined which is strange

最佳答案

Ext.Ajax.request 是异步的。您的最终 console.log 调用不会返回任何内容,因为在执行该请求时,请求尚未完成。任何依赖于请求回调结果的代码也需要由回调执行。

关于Ext.Ajax.request 中的 javascript 范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com