@@ -82,9 +82,13 @@ export var QueryHandler = L.Handler.extend({
82
82
) ;
83
83
let templates = layer . getQueryTemplates ( pcrsClick ) ;
84
84
85
- var fetchFeatures = function ( template , obj , lastOne ) {
85
+ let fetches = [ ] ;
86
+
87
+ var fetchFeatures = function ( template , obj ) {
86
88
const parser = new DOMParser ( ) ;
87
- fetch ( L . Util . template ( template . template , obj ) , { redirect : 'follow' } )
89
+ return fetch ( L . Util . template ( template . template , obj ) , {
90
+ redirect : 'follow'
91
+ } )
88
92
. then ( ( response ) => {
89
93
if ( response . status >= 200 && response . status < 300 ) {
90
94
return response . text ( ) . then ( ( text ) => {
@@ -137,13 +141,7 @@ export var QueryHandler = L.Handler.extend({
137
141
. querySelector ( 'map-feature' ) ;
138
142
layer . _mapmlFeatures . push ( feature ) ;
139
143
}
140
- if ( lastOne ) {
141
- // create connection between queried <map-feature> and its parent <map-extent>
142
- for ( let feature of layer . _mapmlFeatures ) {
143
- feature . _extentEl = template . _extentEl ;
144
- }
145
- displayFeaturesPopup ( layer . _mapmlFeatures , e . latlng ) ;
146
- }
144
+ return layer . _mapmlFeatures ;
147
145
} )
148
146
. catch ( ( err ) => {
149
147
console . log ( 'Looks like there was a problem. Status: ' + err . message ) ;
@@ -247,10 +245,19 @@ export var QueryHandler = L.Handler.extend({
247
245
}
248
246
249
247
if ( template . extentBounds . contains ( pcrsClick ) ) {
250
- let lastOne = i === templates . length - 1 ? true : false ;
251
- fetchFeatures ( template , obj , lastOne ) ;
248
+ fetches . push ( fetchFeatures ( template , obj ) ) ;
252
249
}
253
250
}
251
+ Promise . allSettled ( fetches ) . then ( ( ) => {
252
+ // create connection between queried <map-feature> and its parent <map-extent>
253
+ if ( layer . _mapmlFeatures ) {
254
+ for ( let feature of layer . _mapmlFeatures ) {
255
+ feature . _extentEl = template . _extentEl ;
256
+ }
257
+ displayFeaturesPopup ( layer . _mapmlFeatures , e . latlng ) ;
258
+ }
259
+ } ) ;
260
+
254
261
function displayFeaturesPopup ( features , loc ) {
255
262
if ( features . length === 0 ) return ;
256
263
let f = M . featureLayer ( features , {
0 commit comments