最近,我在web服务调用中使用JSONP请求替换了xmlHTTPRequest,但我发现由于它,我得到了错误。我可以看到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请求完成。
发布于 2013-05-01 12:38:41
不是的。对您的服务的调用是异步的。您真的需要将所有逻辑都放在回调处理程序中。或者在收到响应并处理该事件后生成事件。
https://stackoverflow.com/questions/16312626
复制相似问题