2013-05-01 2 views
0

최근 내 웹 서비스 호출에 대한 xmlHTTPRequest을 JSONP 요청으로 바꿨지 만, 이로 인해 오류가 발생하는 것으로 나타났습니다. 나는 JSONP가 약간 느리다는 것을 알 수 있었다.JSONP 요청 문제

initialize:function(){ 
    this.callParent(); 
    var jsonObject = Ext.create('MyProj.library.webservice').makeJSONPRequest('top_categories_json'); 
    Ext.getCmp('categoryList').setData(jsonObject.info); 
    console.log(jsonObject.info); 
} 
makeJSONPRequest: function(urlx, postparams) { 
    Ext.data.JsonP.request({ 
    params:{ 
     params: Ext.JSON.encode(postparams) 
    }, 
    success: function(result) { 
     console.log('JSON RES'); 
     console.log(result.info); 
     if (result) { 
     //return JSON.parse(result); 
     return result; 
     } else { 
     Ext.Msg.alert('Error', 'There was an error retrieving the weather.'); 
     } 
    } 
    }); 
} 

I의 makeJSONPRequest 호출을 실행 한 결과,이 JSONP 요청이 완료 될 때까지 기다리지 않고 다음 stateemnt을 실행하는 것을 알 수있다, 그래서 jsonObject이 정의된다. 이 오류가 발생하면 JSONP 요청이 끝나고 값을 인쇄합니다. JSONP 요청이 끝날 때까지 주 스레드를 일시 중단합니다.

답변

1

번호는 서비스 호출이 비동기입니다. 모든 논리를 콜백 핸들러에 넣어야합니다. 또는 응답을 받고 해당 이벤트를 처리 한 후 이벤트를 생성합니다.