我想获得此代码工作
getDataObject = {
transformData: function (wmsLayer) {
var promise = this.getDataFromServer(wmsLayer);
promise.then(
function(XMLInput){
layers = $(XMLInput).find('LayerDescription').each(function() {
var item = $(this);
var layerName = item.attr('name');
layerNames.push(layerName);
});
},
function(data){
this.error(data)
});
},
getDataFromServer: function(wmsLayer) {
var deferred = $q.defer();
var layerGroup = wmsLayer.params.LAYERS[0];
$http.get({
url : '//localhost/geoserver/BL_WFS/wms',
params : {
service : 'WMS',
version : '1.1.1',
request : 'DescribeLayer',
layers : layerGroup,
},
responseType : 'xml'
})
.success(function(data){
deferred.resolve(data);
})
.error(function(error){
deferred.reject(error);
});
return deferred.promise;
}
但我在两个问题上运行:虽然我设置的$ HTTP的功能保持调用网址该网址
页面来自。
我想执行
transformData
函数只有当响应回来的数据,我不知道我设计的承诺/推迟结构正确。
我改变了代码,但仍然在问题n.2中运行。当我到达promise的'then()'方法时,成功代码没有得到执行,代码流只是跳过该方法,继续并在所有函数完成运行后完成。数组填充后还有更多事情要做。我试图复制then方法中的所有代码,但它仍然是一样的。当它到达时()它不会进入内部。 – user3523583
是的,谢谢你的回答我看了一下代码,我需要调整一些其他的东西来让代码在我想要的时候执行。 – user3523583