forEachFeatureIntersectingExtent(extent, callback) {
    return this.forEachFeatureInExtent(
      extent,
      /**
       * @param {FeatureType} feature Feature.
       * @return {T|undefined} The return value from the last call to the callback.
       */
      function (feature) {
        const geometry = feature.getGeometry();
        if (
          geometry instanceof RenderFeature ||
          geometry.intersectsExtent(extent)
        ) {
          const result = callback(feature);
          if (result) {
            return result;
          }
        }
      },
    );
  }
Iterate through all features whose geometry intersects the provided extent,
calling the callback with each feature.  If the callback returns a "truthy"
value, iteration will stop and the function will return the same value.

If you only want to test for bounding box intersection, call the
{@link module:ol/source/Vector~VectorSource#forEachFeatureInExtent #forEachFeatureInExtent()} method instead.

@param {import("../extent.js").Extent} extent Extent.
@param {function(FeatureType): T} callback Called with each feature
    whose geometry intersects the provided extent.
@return {T|undefined} The return value from the last call to the callback.
@template T
@api