require([
"esri/Map",
"esri/views/MapView",
"esri/layers/FeatureLayer",
"esri/core/watchUtils"
], function(EsriMap, MapView, FeatureLayer, { whenFalseOnce, whenFalse }) {
const fLayer = new FeatureLayer({
portalItem: {
id: "848d61af726f40d890219042253bedd7"
}
});
const fLayer2 = new FeatureLayer({
url: "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/ACS_Population_by_Race_and_Hispanic_Origin_Boundaries/FeatureServer/2"
});
const map = new EsriMap({
basemap: "dark-gray",
layers: [fLayer, fLayer2]
});
const view = new MapView({
container: "viewDiv",
map: map,
center: [-118, 34],
zoom: 9
});
const goTo = view.goTo.bind(view);
let layerView1
let layerView2;
Promise.all([
view.whenLayerView(fLayer),
view.whenLayerView(fLayer2)
]).then(([lyrView1, lyrView2]) => {
layerView1 = lyrView1;
layerView2 = lyrView2;
return Promise.all(
[
whenFalseOnce(layerView1, "updating"),
whenFalseOnce(layerView2, "updating")
]
);
}).then(() => {
console.log("all layerViews done updating");
whenFalse(layerView1, "updating", () => {
console.log("layerView1 has updated");
});
whenFalse(layerView2, "updating", () => {
console.log("layerView2 has updated");
});
});
});