Method Overview
| Name | Return Type | Summary | |
|---|---|---|---|
| Promise | Dynamically requires one or more modules and returns a promise that resolves when all the specified modules have loaded. more details | more details | |
Method Details
when(moduleRequire, moduleNames){Promise}static
Dynamically requires one or more modules and returns a promise that resolves when all the specified modules have loaded.
Parameters:moduleRequire requireThe
requirefunction used to load the modules. This is the AMD alias (e.g. themoduleRequirereference in the snippets below) used to reference therequiremodule.The names of the modules to load.
Returns:Type Description Promise A promise which resolves with an array containing the loaded modules, or a single module when moduleNamesis a string.Examples:// Load multiple modules conditionally require([ "esri/core/requireUtils", "require", "dojo/domReady!" ], function( requireUtils, moduleRequire ){ // load modules based on whether a user selects // a UI option to apply class breaks to a layer if(classBreaksSelected){ { requireUtils.when(moduleRequire, [ "esri/renderers/ClassBreaksRenderer", "esri/symbols/PolygonSymbol3D", "esri/symbols/ExtrudeSymbol3DLayer", ]).then(function([ ClassBreaksRenderer, PolygonSymbol3D, ExtrudeSymbol3DLayer ]){ // Create renderer and apply it to the desired layer }); } });// Load a single module conditionally require([ ... // load other modules as needed "esri/core/requireUtils", "require", "dojo/domReady!" ], function(..., requireUtils, moduleRequire) { if (basemapUrl && view) { // if basemapUrl is provided then // load customBasemap module and set up and // custom basemap with provided layers. requireUtils.when(moduleRequire, "./customBasemap") .then(function (Basemap) { var customBasemap = new Basemap({ baseLayers: [layers], title: "Custom Basemap", id: "myBasemap" }); }); } });