Convert Feature Layer to an array of Polygons in ArcGIS JS?

http://stackoverflow.com/questions/42212332/convert-feature-layer-to-an-array-of-polygons-in-arcgis-js

by Alex Azuero

HTML

<link rel="stylesheet" href="https://js.arcgis.com/3.19/esri/css/esri.css">
<script src="https://js.arcgis.com/3.19/init.js"></script>
<script type="text/javascript">
  var dojoConfig = {
    async: true
  };

</script>
<div id="map">
</div>

CSS

body,
html {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

#map {
  height: 100%;
  width: 100%;
  margin: 0px;
}

JavaScript

require([
  'esri/map',
  'esri/layers/FeatureLayer',
  'dojo/on',
  'esri/geometry/Polygon'
], function(
  Map,
  FeatureLayer,
  on,
  Polygon
) {
  var map = new Map("map", {
    center: [-98.085594, 38.52909564],
    zoom: 8,
    basemap: "topo"
  });

  var fl = new FeatureLayer('https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Petroleum/KGS_OilGasFields_Kansas/MapServer/0');
  map.addLayer(fl);

  on(map, 'update-end', () => {
    let polygons = [];

    fl.graphics.forEach((graphic) => {
    console.log('graphic', graphic)
      let p = new Polygon({
        "rings": graphic.geometry.rings,
        "spatialReference": graphic.geometry.spatialReference
       });
       polygons.push(p);
    });
    console.log('polygons:', polygons);
  })
});