function fetchAllResults(url, resultOffset) {
return new Promise((resolve, reject) => {
const resultsPerPage = 1000;
const allResults = [];
function fetchPage(offset) {
arcgisRestFeatureLayer.queryFeatures({
url: url,
resultOffset: offset,
resultRecordCount: resultsPerPage
}).then(response => {
const features = response.features;
allResults.push(...features);
if (features.length === resultsPerPage) {
fetchPage(offset + resultsPerPage);
} else {
resolve(allResults);
}
}).catch(reject);
}
fetchPage(resultOffset);
});
}