Sibjithat,
Here is what I would do:
require([
"esri/request",
"dojo/_base/array",
"dojo/promise/all",
....
], function(
esriRequest,
array,
all,
....
){
dom.byId("search1").disabled = true;
options = [];
function CheckFields() {
var allPromises = [], promise;
for (j = 15; j < 19; j++) {
promise = esriRequest({
url: "http://localhost:6080/arcgis/rest/services/RAEC/MapServer/" + j,
content: { f: "json" },
handleAs: "json",
callbackParamName: "callback",
});
promise.then(function(response){
var fields = response.fields;
if(array.indexOf(fields, "FeederID") > -1){
options.push(response.id);
}
});
allPromises.push(promise);
}
return allPromises;
}
all(CheckFields()).then(function(results){
dom.byId("search1").disabled = false;
})
on(dom.byId("search1"), "click", function() {
var typesData = [];
var allPromises = [];
var y = 1;
array.map(options, function(id){
var url = "http://localhost:6080/arcgis/rest/services/RAEC/MapServer/" + id;
var queryTask3 = new QueryTask(url);
var query3 = new Query();
query3.returnGeometry = false;
query3.where = "FeederID='HITAM POW F2'";
var promise = queryTask3.executeForCount(query3, function(count) {
var typeCount = {
field: y,
field1: count
};
typesData.push(typeCount);
y++;
});
allPromises.push(promise);
});
all(allPromises).then(function() {
var grid = new Grid({
columns: {
field: 'Serial',
field1: 'Count'
}
}, 'grid');
grid.renderArray(typesData);
});
});