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(id);
};

        [
            ("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;
            });
            
            window[id + "loaded"].then(function(id){
             console.log(id + " loaded!");
            });

            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');
            });