diff --git a/examples/vector-esri.js b/examples/vector-esri.js index cb28556a4d..ad018becdb 100644 --- a/examples/vector-esri.js +++ b/examples/vector-esri.js @@ -56,7 +56,7 @@ const styleCache = { }; const vectorSource = new VectorSource({ - loader: function (extent, resolution, projection) { + loader: function (extent, resolution, projection, success, failure) { const url = serviceUrl + layer + @@ -83,6 +83,7 @@ const vectorSource = new VectorSource({ alert( response.error.message + '\n' + response.error.details.join('\n') ); + failure(); } else { // dataProjection will be read from document const features = esrijsonFormat.readFeatures(response, { @@ -91,8 +92,10 @@ const vectorSource = new VectorSource({ if (features.length > 0) { vectorSource.addFeatures(features); } + success(features); } }, + error: failure, }); }, strategy: tileStrategy( diff --git a/examples/vector-osm.js b/examples/vector-osm.js index a5ad295b26..3b9b4faf80 100644 --- a/examples/vector-osm.js +++ b/examples/vector-osm.js @@ -74,7 +74,7 @@ const styles = { const vectorSource = new VectorSource({ format: new OSMXML(), - loader: function (extent, resolution, projection) { + loader: function (extent, resolution, projection, success, failure) { const epsg4326Extent = transformExtent(extent, projection, 'EPSG:4326'); const client = new XMLHttpRequest(); client.open('POST', 'https://overpass-api.de/api/interpreter'); @@ -83,7 +83,9 @@ const vectorSource = new VectorSource({ featureProjection: map.getView().getProjection(), }); vectorSource.addFeatures(features); + success(features); }); + client.addEventListener('error', failure); const query = '(node(' + epsg4326Extent[1] + diff --git a/src/ol/featureloader.js b/src/ol/featureloader.js index e2d599832e..dbe2ae092f 100644 --- a/src/ol/featureloader.js +++ b/src/ol/featureloader.js @@ -19,8 +19,8 @@ let withCredentials = false; * the area to be loaded, a `{number}` representing the resolution (map units per pixel), an * {@link module:ol/proj/Projection} for the projection, an optional success callback that should get * the loaded features passed as an argument and an optional failure callback with no arguments. If - * the callbacks are not used, the corresponding vector source will not fire `'featuresloadstart'`, - * `'featuresloadend'` and `'featuresloaderror'` events. `this` within the function is bound to the + * the callbacks are not used, the corresponding vector source will not fire `'featuresloadend'` and + * `'featuresloaderror'` events. `this` within the function is bound to the * {@link module:ol/source/Vector} it's called from. * * The function is responsible for loading the features and adding them to the diff --git a/src/ol/source/Vector.js b/src/ol/source/Vector.js index 83c19a54ff..38ad4ab5c6 100644 --- a/src/ol/source/Vector.js +++ b/src/ol/source/Vector.js @@ -72,7 +72,7 @@ export class VectorSourceEvent extends Event { * @property {import("../featureloader.js").FeatureLoader} [loader] * The loader function used to load features, from a remote source for example. * If this is not set and `url` is set, the source will create and use an XHR - * feature loader. The `'featuresloadstart'`, `'featuresloadend'` and `'featuresloaderror'` events + * feature loader. The `'featuresloadend'` and `'featuresloaderror'` events * will only fire if the `success` and `failure` callbacks are used. * * Example: