J'ai une carte construite dans la API JavaScript Esri.
Cette carte contient une couche, montrant des stations-service.
À mesure que l'étendue de la carte change, j'exécute 4 requêtes distinctes contre cette couche pour obtenir un décompte total des stations-service dans l'étendue actuelle, une requête pour chaque fournisseur de stations-service.
par exemple (Un peu simplifié)
//Shell
shellQuery.where = "brand = 'Shell"
//Execute Query, and report result to console
shellQueryTask.executeForCount(shellQuery , function(count){
console.log(count);}
//BP
même chose. Se répète pour 4 requêtes.
Les résultats de chaque requête sont des promesses dojo.deferred.
Cependant, étant donné qu'il s'agit de requêtes distinctes (doit être fait ainsi pour d'autres raisons), elles renvoient toutes leurs résultats légèrement à des moments différents.
Objectif final - inclure un graphique à barres Dojo, mis à jour par ces requêtes, pour afficher une répartition des stations-service dans l'étendue actuelle, basée sur le fournisseur.
Étant nouveau en Javascript, sans parler de Dojo, je me gratte la tête pour trouver la meilleure façon de mettre à jour un graphique Dojo. La plupart des exemples Esri que je vois portent sur l'affichage des résultats d'une seule requête, en créant un nouveau graphique à chaque fois.
Je recherche une réponse qui soit la méthode la plus élégante pour y parvenir.
Actuellement, je pense qu'il faut écrire les résultats des 4 requêtes dans un tableau de données global, puis appeler une fonction distincte pour mettre à jour le graphique Dojo. Je suis juste un peu inquiet de m'assurer que je n'appelle pas la fonction avant que les quatre requêtes aient renvoyé leurs résultats.