0

私は機能を持っています:

    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 レイヤーと GeoExt.FeatureStore が作成されることがわかります。いつまで機能するかわかりません。
だから今、私はこの関数を呼び出して、次のコードを作成する前に関数の結果を待ちたいと思っています。これを作る方法は?

4

1 に答える 1

1

独自のコールバックを渡すだけです:

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


function Main() {
    createWFS(NextStep);
}

function NextStep() {
    //stuff here
}
于 2013-01-16T09:41:35.323 に答える