How do I apply the async/await feature to this code? I need to wait for the reltionshipQuery and forEach to finish before I return contentSpecies.
contentSpecies = function(value, key, data) {
var contentSpecies = [];
objectID = data.OBJECTID;
var queryTask = new QueryTask({
url: "https://webmaps.com/MapServer/1"
});
var relationQuery = new RelationshipQuery({
objectIds: [objectID],
outFields: ["Species", "Notes", "Status"],
returnGeometry: true,
relationshipId: 0
});
queryTask.executeRelationshipQuery(relationQuery)
.then(function(rslts) {
var features = rslts[objectID].features;
features.forEach(function(ftr) {
var t = ftr.attributes;
var species = t.Species;
contentSpecies += "<span class='bold' title='Species'><b>Species: </b></span>" + species + "<br/>";
var notes = t.Notes;
contentSpecies += "<span class='bold' title='Notese'><b>Notes: </b></span>" + notes + "<br/>";
var status = t.Status;
contentSpecies += "<span class='bold' title='Status'><b>Status: </b></span>" + status + "<br/>";
});
//return contentSpecies;
})
return contentSpecies
}
Jay HillJay Hill
2 Answers 2
contentSpecies = async function(value, key, data) {
try {
...
let rslts = await queryTask.executeRelationshipQuery(relationQuery);
var features = rslts[objectID].features;
features.forEach(function(ftr) {
...
} catch(e) {
console.error(e);
}
}
answered Jun 23, 2018 at 12:00
-
it is not executing. can't even get a console log to work.Jay Hill– Jay Hill2018年06月25日 19:18:25 +00:00Commented Jun 25, 2018 at 19:18
async function xxx(){
var results = await queryTask.executeRelationshipQuery(relationQuery)
}
It works for me - see Using async await in ArcGIS JavaScript API
answered Nov 6, 2024 at 17:11
lang-js