I have an issue with JavaScript Promise where in one of the promise is not moving into then()
Below is the code I am trying to accomplish.
Background: I have not used Promise before, but have read through few articles.
    function doStart(){        
    var loadedMap = loadBasemap([layer0]);
    loadedMap.then(function (v) {
            view = loadView(MAP_CANVAS_ID, map);
            ...
        });
    ...
}
    
 function loadBasemap(layers) {
    if (LayerSettings && LayerSettings.hasOwnProperty('basemap') && LayerSettings.basemap.hasOwnProperty('baseMapLayers')) {
        new Promise(function () {
            updateToDefaultLayerSetting();
        }).then(function () {
            map = new Map({
                basemap: Basemap.fromJSON(LayerSettings.basemap),
                layers: layers
            });
        });
        return new Promise((resolve, reject) => resolve(map));
    }
    else {...}
}
async function updateToDefaultLayerSetting() {
    console.log("Calling default");
    const result = await actionDefaultBasemap();
    console.log(result);
}
var defaultBasemap;
function actionDefaultBasemap() {
    let portalA = new Portal(portalConfig);
    
    new Promise(function () {
        portalA.load().then(function () {
            defaultBasemap = portalA.useVectorBasemaps ? portalA.defaultVectorBasemap : portalA.defaultBasemap;
        }).then(function () {
            if (LayerSettings.basemap.baseMapLayers[0].hasOwnProperty('url') && typeof defaultBasemap.resourceInfo !== "undefined") {
                LayerSettings.basemap.baseMapLayers[0].id = defaultBasemap.resourceInfo.data.baseMapLayers[0].id;
                LayerSettings.basemap.baseMapLayers[0].title = defaultBasemap.resourceInfo.data.baseMapLayers[0].title;
                LayerSettings.basemap.baseMapLayers[0].url = defaultBasemap.resourceInfo.data.baseMapLayers[0].url;
            }
        });
    })
    return new Promise((resolve, reject) => resolve(defaultBasemap));
}
Execution Order is as below:
- doStart()
- loadBasemap(layers)
- updateToDefaultLayerSetting()
- actionDefaultBasemap()
The process is execulting the then() inside actionDefaultBasemap() but not reaching the then() in loadBasemap().
Not sure where the process is breaking. I would need the map object to be returned to
view = loadView(MAP_CANVAS_ID, map);
Any advise would be helpful.
 
    