JSFiddle - React, Tailwind, and code Playground

by DOTang

HTML

<input id="groups-no-dropdown" type="text" />
<input id="groups-default" type="text" />
<input id="groups-extended" type="text" />

JavaScript

window["globalPromiseList"] = [];


function comboboxDataBound(id) {    
            window[id].resolve({ 
                then: function (result) {
                    console.log(id + " loaded!");
                    return result;
                }
            });
        };

        [
            ("groups-no-dropdown"),
            ("groups-default"),
            ("groups-extended"),
        ].forEach(function(id) {
            window[id] = { resolve: undefined, reject: undefined };

            window[id + "loaded"] = new Promise(function(resolve, reject) {
                window[id].resolve = resolve;
                window[id].reject = reject;
            });

            globalPromiseList.push(window[id + "loaded"]);
        });
        
        $(document).ready(function(){
        		[("groups-no-dropdown"),
            ("groups-default"),
            ("groups-extended"),
            ].forEach(function(id) {
                  comboboxDataBound(id);
            });
        });
        
        setTimeout(function(){ console.log(globalPromiseList)},2000);
        
        
        Promise.all(globalPromiseList).then(function () {
                console.log('all promises finished');
            });