如何等待功能结果?

时间:2013-01-16 09:35:20

标签: javascript openlayers

我有一个功能:

    function createWFS(){
    //WMS
    wms_proj = new OpenLayers.Projection("EPSG:900913");    
    //WFS
    SS=new OpenLayers.Strategy.Save();
    FS=new OpenLayers.Strategy.Filter({filter:Ffilter});
    var myStyle = OpenLayers.Util.extend({},
        OpenLayers.Feature.Vector.style['default']);
    myStyle.strokeWidth = 1.5;
    myStyle.strokeColor = "#ff0000";
    myStyle.fillOpacity = 0.1;

    myVecLayer= new OpenLayers.Layer.Vector("Редактируемый участок");
    myVecLayer.projection=wms_proj;
    app.mapPanel.map.addLayers([myVecLayer]);
    myVecLayer.visibility=false;

    //Стор для зума
    zoom_tab = new GeoExt.data.FeatureStore({
        layer: myVecLayer,
        fields: [
            {name: 'id', type: 'int'},
            {name: 'filedata', type: 'String'}
        ],
        proxy: new GeoExt.data.ProtocolProxy({
            protocol: new OpenLayers.Protocol.HTTP({
                //url: "/geoserver/ows?service=WFS&request=GetFeature&typeName=mrsk:parcels_temp&srsName=EPSG:4326&outputFormat=GML2",
                url: "/geoserver/ows?service=WFS&request=GetFeature&typeName=cite:parcels_temp&srsName=EPSG:4326&outputFormat=GML2",
                format: new OpenLayers.Format.GML()
            })
        }),
        autoLoad: true
    });
    zoom_store=zoom_tab;
}

您会看到此函数创建WFS Layer和GeoExt.FeatureStore。我不知道功能会持续多长时间。
所以现在我调用这个函数并在下一个代码之前想要等待函数结果。怎么做到这个?

1 个答案:

答案 0 :(得分:1)

直接传递你自己的回调:

function createWFS(callback) {
    //WMS
    ...
    if (callback)
        callback();
}


function Main() {
    createWFS(NextStep);
}

function NextStep() {
    //stuff here
}