2013-05-01 261 views
0

最近我已经取代xmlHTTPRequest与我的web服务调用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.'); 
     } 
    } 
    }); 
} 

我看得出来,在执行makeJSONPRequest通话后,它执行下一个stateemnt无需等待JSONP请求的完成,所以jsonObject变得不确定。在该错误之后,JSONP请求完成并打印该值。无论如何暂停主线程,直到JSONP请求完成。

回答

1

号电话为您服务是异步。你真的需要把所有的逻辑放在回调处理程序中。或者在收到回复并处理该事件后生成事件。