2
여기 상황이 약간 이상하고 도움이 필요합니다. 다음은 내 코드의 예입니다.ExtJS 4는 콜백을 사용하지 않고 AJAX 요청의 결과를 기다리고 있습니다.
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는 비동기 적으로 지원되며 모든 사람을 검색 할 때 콜백에 내 post-Ajax 로직을 넣으라고 알려줍니다. 그러나 여기서 볼 수 있듯이 그것은 불가능합니다. fn과 ajaxFunction 함수가 필요합니다. ajaxFunction은 많은 다른 함수에 의해 호출되므로 별도로 존재해야합니다.
"비동기"구성을 시도했지만 제대로 작동하지 않습니다. 나는 그들이 ExtJS 4.2.1에서 그것을 제거했다고 생각한다.
아이디어가 있으십니까?
'var test = this ....'테스트에 의미있는 가치가 있다고 생각합니까? –
@SunnyRGupta 사실, OP 코드를 편집 할 때 간과 할 수 없습니다. 지금 그것을 제거했습니다. –
음,이 방법은 직장 동료에 의해 제안되었으며, 나는 다소 효과가 있었지만 이상하게 보였다. 나는 AJAX를 개념적으로 처음 접했고 절차 적 프로그래밍 방식이 혼란스러워지고 있습니다. 일이 진행되는 방식은 일반적으로 다음과 같습니다. 데이터를 가져 와서 (아약스 또는 다른 방법으로) 그 데이터에 대해 작업하십시오. 그러나 Async AJAX를 사용하면 ajax를 함수 호출로 간주 할 수 없습니다. 그것은 저를 괴롭히는 것입니다. 그리고 그것이 제가 성취하려고하는 것입니다. Ajax 요청을 보내고 우리가 원하는 데이터를 얻은 후에 만 프로그램을 계속 호출하게하는 함수 호출을 만듭니다. – Konstantine