JSFiddle - React, Tailwind, and code Playground

by darul75

HTML

<div id="script"></div>

JavaScript

// take a filename, and a callback
function getScript(name, cb) {
    var time = Math.random() * 5000;
    setTimeout(
        function() {
            cb(null, '[source for library '+name + '] ' );
        }, 
        time
    );
}

function loadScript(scripts, callback) {

    var data = [];
    var l = scripts.length;

    for (var i=0;i<l;i++) {
        (function(i) {
          getScript(scripts[i], function(err, source) {
            data[i] = source;
            // below condition is verified too many times now
            if (data.length === l) {
              console.log(data.length);
              console.log(data);  
              callback(data.join(''));
            }
          });
        })(i);
    }
}

var libs = ['jquery', 'backbone', 'lodash'];
loadScript(libs, function(data) {
  console.log('end callback : ' + data);
  var p = document.createElement(p);
  p.innerHTML = data;  
  document.getElementById("script").appendChild(p); 
});