Solved! Go to Solution.
dojo.forEach(map.layerIds, function(layerId) { var legendRequest = esri.request({ url: map.getLayer(layerId).url + "/legend?f=json", handleAs: "json" }); legendRequest.then( // if the legend REST service succeeds, create the placeholder for each layer legend function(data) { if (data && data.layers && data.layers.length > 0) { // create the placeholder for each layer legend loadLegend(data.layers, layerId); } }, function(error) { console.log(error); }); }); // legendNode is the container node for the legend loadLegend: function(layers, svcLayerId) { dojo.forEach(layers, function(layer) { var legends = layer.legend; if (legends.length > 0) { var newLegendContainer = dojo.create("div", {className: "clsLegendNodeContainer"}, legendNode); var newLegendLayerName = dojo.create("div", {className: "clsLegendLayerName", innerHTML: layer.displayName || layer.layerName}, newLegendContainer); var newLegend, newLabel, imageSrc; dojo.forEach(legends, function(aLegend) { newLegend = dojo.create("div", {className: "clsLayerLegend"}, newLegendContainer); imageSrc = "data:" + aLegend.contentType + ";base64," + aLegend.imageData; dojo.create("img", {src: imageSrc}, newLegend); dojo.create("label", {className: "clsLegendLabel", innerHTML: aLegend.label}, newLegend); }); } }); }