Add hasListener check around dispatchEvent calls
This commit is contained in:
@@ -172,9 +172,13 @@ class BaseObject extends Observable {
|
||||
notify(key, oldValue) {
|
||||
let eventType;
|
||||
eventType = `change:${key}`;
|
||||
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
|
||||
if (this.hasListener(eventType)) {
|
||||
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
|
||||
}
|
||||
eventType = ObjectEventType.PROPERTYCHANGE;
|
||||
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
|
||||
if (this.hasListener(eventType)) {
|
||||
this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -240,27 +240,25 @@ class ImageSource extends Source {
|
||||
*/
|
||||
handleImageChange(event) {
|
||||
const image = /** @type {import("../Image.js").default} */ (event.target);
|
||||
let type;
|
||||
switch (image.getState()) {
|
||||
case ImageState.LOADING:
|
||||
this.loading = true;
|
||||
this.dispatchEvent(
|
||||
new ImageSourceEvent(ImageSourceEventType.IMAGELOADSTART, image)
|
||||
);
|
||||
type = ImageSourceEventType.IMAGELOADSTART;
|
||||
break;
|
||||
case ImageState.LOADED:
|
||||
this.loading = false;
|
||||
this.dispatchEvent(
|
||||
new ImageSourceEvent(ImageSourceEventType.IMAGELOADEND, image)
|
||||
);
|
||||
type = ImageSourceEventType.IMAGELOADEND;
|
||||
break;
|
||||
case ImageState.ERROR:
|
||||
this.loading = false;
|
||||
this.dispatchEvent(
|
||||
new ImageSourceEvent(ImageSourceEventType.IMAGELOADERROR, image)
|
||||
);
|
||||
type = ImageSourceEventType.IMAGELOADERROR;
|
||||
break;
|
||||
default:
|
||||
// pass
|
||||
return;
|
||||
}
|
||||
if (this.hasListener(type)) {
|
||||
this.dispatchEvent(new ImageSourceEvent(type, image));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -457,10 +457,12 @@ class VectorSource extends Source {
|
||||
this.featuresRtree_.load(extents, geometryFeatures);
|
||||
}
|
||||
|
||||
for (let i = 0, length = newFeatures.length; i < length; i++) {
|
||||
this.dispatchEvent(
|
||||
new VectorSourceEvent(VectorEventType.ADDFEATURE, newFeatures[i])
|
||||
);
|
||||
if (this.hasListener(VectorEventType.ADDFEATURE)) {
|
||||
for (let i = 0, length = newFeatures.length; i < length; i++) {
|
||||
this.dispatchEvent(
|
||||
new VectorSourceEvent(VectorEventType.ADDFEATURE, newFeatures[i])
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user