diff --git a/src/ol/PluggableMap.js b/src/ol/PluggableMap.js index 8521202709..d75e4b7f65 100644 --- a/src/ol/PluggableMap.js +++ b/src/ol/PluggableMap.js @@ -166,6 +166,12 @@ class PluggableMap extends BaseObject { this.pixelRatio_ = options.pixelRatio !== undefined ? options.pixelRatio : DEVICE_PIXEL_RATIO; + /** + * @private + * @type {*} + */ + this.postRenderTimeoutHandle_; + /** * @private * @type {number|undefined} @@ -1022,6 +1028,8 @@ class PluggableMap extends BaseObject { if (!targetElement) { if (this.renderer_) { + clearTimeout(this.postRenderTimeoutHandle_); + this.postRenderFunctions_.length = 0; this.renderer_.dispose(); this.renderer_ = null; } @@ -1284,7 +1292,7 @@ class PluggableMap extends BaseObject { this.dispatchEvent(new MapEvent(MapEventType.POSTRENDER, this, frameState)); - setTimeout(this.handlePostRender.bind(this), 0); + this.postRenderTimeoutHandle_ = setTimeout(this.handlePostRender.bind(this), 0); }