Ok, that makes sense. If there are multiple selected results, the buffer geometries returns only the first item. I thought the ".then" of the geometryService.buffer acts like a promise and should wait until all geometries are returned. How can I send both buffered results to the _doSpatialQuery function?
var unit = "UNIT_FOOT";
var dist = [parseFloat(-15)];
var bufferParameters = new BufferParameters();
var resultEvent;
var geoms = array.map(this.currentLayerAdded.graphics, function (gra) { //** 2 Results
return gra.geometry;
});
bufferParameters.geometries = geoms;
bufferParameters.bufferSpatialReference = this.map.spatialReference;
bufferParameters.unit = GeometryService[unit];
bufferParameters.distances = dist;
bufferParameters.unionResults = true;
bufferParameters.geodesic = true;
bufferParameters.outSpatialReference = this.map.spatialReference;
esriConfig.defaults.geometryService.buffer(bufferParameters)
.then(lang.hitch(this, this._doSpatialQuery));
_doSpatialQuery: function(buffGeometries){ //** only 1 result in buffGeometries
// Replace original selected poly geometry with buffered geometry
for (b = 0; b < buffGeometries.length; b++){
for (q = 0; q < this.queryResultsArray.length; q++){
this.queryResultsArray.geometry = buffGeometries;
}
}
continue with function......