我在这里有点情况,我需要帮助。这是我的代码示例:
fn: function () {
var test = this.ajaxFunction();
alert(test);
}
ajaxFunction : function () {
Ext.Ajax.request ({
url: 'MyServlet',
params: ...,
success: function (response) {
response = Ext.decode(response.responseText);
return response.myVar;
}
});
}
显然,警报会给我一个未定义的结果而不是myVar值。我该如何解决?我知道Ext中的AJAX是异步支持的,无论我在哪里搜索,每个人都告诉我把我的后Ajax逻辑放在回调中。但是正如你在这里看到的那样是不可能的。我需要两个函数fn和ajaxFunction。 ajaxFunction被许多不同的函数调用,因此它需要分开。
我尝试了“异步”配置,但它似乎不起作用。我认为他们已将其删除(至少在ExtJS 4.2.1中)。
有什么想法吗?
答案 0 :(得分:4)
您可以将回调函数传递给ajaxFunction
:
fn: function () {
this.ajaxFunction(function(response) {
alert(response);
});
}
ajaxFunction : function (callback) {
Ext.Ajax.request ({
url: 'MyServlet',
params: ...,
success: callback
});
}
这样你就可以重用ajaxFunction
,每次只传递一个不同的回调。